自动补全类型可以是动态的任何类型-不起作用

时间:2019-03-05 10:36:04

标签: python visual-studio-code intellisense

我安装了PythonPython扩展名的IntelliSense具有自动完成功能。

我安装了软件包matplotlib,并为此完成了工作

import matplotlib.pyplot as plt

fig = plt. #figure() shows in completion menu

但是当我尝试这个

fig = plt.figure()

fig. # no completion menu. Specifically looking for suptitle()

[EDIT]似乎实际上与Python动态有关。例如,提示类型可以使其完成

fig = plt.figure()
assert isinstance(fig, figure.Figure)
fig. # now completes perfectly

1 个答案:

答案 0 :(得分:1)

通常,自动完成功能高度依赖于类型信息。

IDE不能告诉您它具有什么方法或数据字段的原因是:

  1. 如果类型不能在编译时(或“执行前”)派生,则IDE不知道它是什么。

  2. 实际上,如果IDE扫描所有可能的路径,但可以自动完成,但这样做没有意义,性能会很差。

python 3.5之后,我们可以指定方法的返回类型。如果matplotlib添加类型提示,则IDE可以支持自动完成。

顺便说一句,IDE在首次加载项目时需要索引文件的原因是因为它需要解析源代码并获取类型信息。