问题标签 [pylance]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
203 浏览

python - VSCode:使用非本地导致变量类型“从不”

我在一些 Python 代码中看到了 VSCode/Pylance 的奇怪行为。考虑以下最小示例:

对 f() 的调用显然将外部设置x[10]. 将鼠标悬停x在第一条assert语句(在函数调用之后)显示(variable) x: None,没关系。但在assert声明之后,将鼠标悬停在 x 上显示(variable) x: Never。这会导致x以下所有行的语法突出显示和自动完成都失败,因为 VSCode/Pylance 显然看到了一个“无类型”的变量。打字x.甚至不显示对象的内置成员,如x.__class__or x.__doc__。分配x给另一个类型的变量没有帮助。第一个断言导致 mypy 接受代码,而 PyLint 说Value 'x' is unsubscriptable,因此其他工具之间似乎也存在一些分歧。这有点烦人,因为代码可以正常工作。

问题:这是 Pylance 中的错误吗?甚至是预期的行为?有什么方法可以强制 Pylance 看到正确的类型x

工具版本:

VSCode Python:v2021.5.842923320
VSCode Pylance:v2021.5.3

谢谢你和最好的问候,
菲利普

编辑:在GitHub 上发布问题

0 投票
1 回答
14527 浏览

python - 预期的“)”Pylance

在此处输入图像描述我正在用 python(Vs 代码)编写代码,但出现此错误:

错误发生在:def main()
我试图运行我的主程序并将其打印到我的屏幕上。我用谷歌搜索并找不到任何解决方案。我该如何解决?

这是我的代码:

0 投票
2 回答
452 浏览

python - Pylance 强调导入为错误,但它有效吗?

这可以工作并且运行得很好,但是它强调workspace2为未解决并且使函数没有颜色。

下划线

错误

0 投票
1 回答
370 浏览

python - 如何在 vscode 中启用对 python 的代码镜头支持?

我正在尝试在 Visual Studio 代码中找到对 python 的代码镜头支持。我有许多未使用的方法。对每种方法使用“查找所有参考资料”既费时又乏味。如果那里有代码镜头工具并显示每种方法的引用数量,则清理未使用的方法会更容易。

可以在 vscode 中为 python 启用代码镜头吗?示例代码镜头如下

在此处输入图像描述

0 投票
0 回答
18 浏览

visual-studio-code - Pylance 在 VS Code 中保存时发出的警报?

我正在使用 VS Code 和 Pylance。VS 代码在窗口页脚显示 Pylance “问题”,我可以点击查看。有没有办法让这些问题变得明显,以便我可以在我的工作流程中检查问题?例如,如果我点击保存后出现问题,我可以将 Pylance 配置为弹出窗口吗?

在此处输入图像描述

0 投票
2 回答
60 浏览

python - 我在我的 Tkinter GUI 中嵌入了一个绘图,我试图在绘图中添加一个显示鼠标位置的十字准线

在正常的绘图上,十字准线工作得很好, 请参见此处的屏幕截图

但是,当我的绘图嵌入到 GUI 中,也就是不是一个单独的窗口时,它不会显示它。我收到的代码警告之一是“光标”未访问Pylance

cursor = Cursor(plot, useblit=True, horizOn=True, vertOn=True, color="green", linewidth=2.0)

我的情节部分代码:

0 投票
0 回答
441 浏览

python - 自动完成不适用于 Visual Studio Code 中的 Jupyter Notebook

自动完成功能不适用于 Visual Studio 代码中的 jupyter notebook。它曾经工作过,就在一天前。有时它仍然可以工作,但只是在打开编辑器的前几秒钟,然后它就停止显示建议和自动完成代码。

以下是 jupyter 的所有 settings.json:

这是普通的 jupyter 窗口: Normal Jupyter Window

这里是所有已安装的扩展: 已安装扩展

编辑:- 自动完成在其他语言中运行良好,奇怪的是,在我在 jupyter 中使用任何“导入语句”之前它运行良好。在调用“import”之前,它会向我显示“if”、“and”和其他简单关键字的建议,但是一旦我导入 numpy 或 pandas,它甚至会停止显示“if”、“and”或“def”的建议

0 投票
1 回答
44 浏览

python - 是否可以在 Python 中将通用 C[T] 静态类型为 T ?

我正在使用 SQLite,其中类型提示仍然远非完美,我最终得到了一个我认为我想做的 MCVE,它可能与静态类型的 ABC 有关。

例子:

我尝试使用 ABC,但由于它们似乎使用 ABC.register() 进行注册,因此类型检查器不知道我在说什么。

我也尝试过通用协议,但我必须设计一个协议来保护每种类型 T 所期望的功能。

我正在使用 Pyright/Pylance 对此进行测试,但如果这是问题的一部分,则可以将替代方案视为答案。

我还发现https://github.com/antonagestam/phantom-types根据文档,“不会增加任何处理或内存开销”。这并不完全正确,因为它们__instancecheck__在运行时通过 .parse 和协议(尽管它们在技术上不会创建任何新对象,但它们在堆栈帧中确实有一些开销)。

唉,这不是一个静态检查器,虽然那里的解决方案似乎用来assert isinstance("hello", MyStr)确保类型检查器可以在该行之后满足此类保证(这至少在 mypy 和 pylance 中有效),但它不会触发任何类型检查时间错误与assert isinstance("hello", MyInt). 该代码将在运行时使断言失败。

最终,我希望能够拥有一个T可以调用的类型,C[T]这样当我col_name = Column(String, ...)在模型中声明 a 时,我就可以col_name = "value"对其进行静态检查或对其进行一些变体。

这可能吗?如果是,那么魔法在哪里?

0 投票
1 回答
238 浏览

python - 泛型函数的类型提示?

考虑以下代码:

我从 pylance 收到错误消息List[ActionDef[_T]]

如果我这样做List[ActionDef],它也会抱怨:

基本上,它希望我做类似的事情ACTION_DEFS: List[ActionDef[int]] = [],这会破坏整个观点。

问题1:如何定义写ACTION_DEFS类型声明?

问题2(标题来自哪里):有没有一种方法可以定义Prompter我不需要随身携带的方式[_T]

0 投票
1 回答
234 浏览

python - 可以在 Python 中键入 *(解包)运算符吗?或者任何其他可变参数 args 函数,使得所有可变参数类型都在结果类型中?

使用类型存根,我想知道是否可以在 Python 中表达一种类型,允许您为任意数量的参数正确键入:

乍一看,我带着:

但这当然只会正确输入第一个 T。

是为所有 arities 编写覆盖的唯一可能方法吗?

这也不完整,因为它没有携带足够的类型信息来键入以下内容: