pylance插件代码自动提示和补全问题
vscode吧
全部回复
仅看楼主
level 1
leanas8 楼主
2023年01月09日 07点01分 1
level 12
我猜测是因为 Pylance 是依赖于外置 Type Stubs 或者库自身的 Type Hints 来实现类型推断的?可以看到 load_workbook 这个函数返回的数据类型是一个 Unknown 而不是 Workbook 。我这里开启了 Inline Types 功能,可以看到 VSCode 在变量 wb 的后面显示了一个灰色的 Any 。
我这里安装了 Mypy ,可以看到 Mypy 提示 openpyxl 实现全程没有标注变量数据类型和函数/方法的参数/返回值数据类型,同时 Mypy 也没有提供这些库的外置 Type Stubs (一般是 types-XXX 形式)。如果你知道变量的数据类型都是什么,可以自己在上面加 Type Hints 。对于不支持 Type Hints 写法的,可以借助类型注释来强制更改变量类型的提示。
Jedi 这个语言服务器的具体实现不是很了解,个人猜测它是常驻在后台、持续运行的一个程序?如果是这样,没准它可以加载分析源代码文件,从运行时的角度确定所有变量的数据类型。
2023年01月11日 02点01分 2
1