python - 为什么自动完成有时在 python IDE 中不起作用

标签 python autocomplete ide pycharm

我正在 PyCharm IDE 中处理一些 python 代码。自动完成功能在某些情况下工作正常,但在其他情况下则不然。例如,在我将 matplotlib 导入为 plt 后,在输入“plt.”后,所有可能的方法如下所示

autocomplete works here

但是,某些变量似乎没有自动完成功能。如果我手动输入方法,程序就可以正常工作。但 IDE 并没有提示我该变量可以使用哪些方法。它显示了以“__”开头的内容,但不是我应该使用的方法。例如,在创建 ax1 = plt.subplot2grid((1,1), (0,0)) 后,我可以在 ax1 变量上调用 tick_params 方法。这是一个有效的方法。但是,当我输入“ax1”时,此方法不会显示在列表中。

autocomplete does not work

我不认为这个问题是 PyCharm 特有的。我过去在其他 Python IDE 或 Python Notebook 中也遇到过类似的问题。我在这里缺少什么?

最佳答案

自动完成只能帮助您处理类...这是您调用以获取坐标区对象的方法

考虑

def get_something():
    if caseA: return Something1()
    return DefaultSomething()

pycharm(或任何 ide)不知道哪个类将返回其中之一,或者可能什么都没有......它应该给你什么作为自动完成?

也就是说你可以告诉 pycharm 它必须是 matplotlib.Axes 类型

ax1 = plt.subplots(....)
assert isinstance(ax1,matplotlib.Axes)
ax1.   # now autocomplete works

关于python - 为什么自动完成有时在 python IDE 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43954889/

相关文章:

python - 避免针对 @dataclass 变量声明的 Python lint 警告

python - 导入 sklearn.model_selection.train_test_split 与导入 sklearn.model_selection as sm

jquery - 一页上 jQuery 自动完成组合框的多个实例

javascript - 使用 AngularJS 和 ng-submit 记住密码

git - IDE 与 GIT 集成

flash - 是否有适用于 HTML5 的 Adob​​e Flash Builder 对应 IDE?

python - 查找 Python 和 MySQL 脚本中的性能瓶颈

python - 如何编写说明混沌行为的 Python 程序

php - 将 JQuery 自动完成附加到由 Ajax 调用加载的文本字段

java - Eclipse:有没有办法让 Eclipse 输出运行程序的命令?