许多python IDE都提供代码完成(代码洞察),PyCharm是其中一个IDE.但是,在我看来,提供的代码完成非常有限.让我举个例子说清楚:
import numpy as np
m = np.random.random((3,5))
m.
Run Code Online (Sandbox Code Playgroud)
在'm'之后击中CTRL空间.不会给我任何代码完成, - 无论我多么难以点击它;)..我想这是因为IDE必须进行类型推断以了解变量'm'的类型,并且这不是'在动态编程语言领域中是微不足道的.
现在,PyCharm带有一个名为"收集代码洞察的运行时类型信息"的设置,这听起来确实很有希望.但是,它似乎没有解决上面提到的问题..我仍然无法在变量'm'上获得代码完成.
到目前为止,我只找到了一种在PyCharm中获取变量代码完成的方法:
import numpy as np
m = np.random.random((3,5))
''':type : np.matrix'''
m.
Run Code Online (Sandbox Code Playgroud)
在这个例子中,我可以在'm.'之后按CTRL空格时获得代码完成,这是因为我通过使用docstring指定变量的类型来帮助IDE.但是,我对这种获取代码完成的方式不满意,因为它为所有这些文档字符串添加了不必要的冗长(更不用说所有额外的键盘输入了)...
现在,如果我们在linux-terminal中启动IPython并输入第一段代码,我们将能够一直获得代码完成,即使是变量'm'.(通过按TAB而不是CTRL空格来实现IPython中的代码完成)
我对IPython没有多少经验,但我相信我听说过IPython不断在循环中执行代码或类似的东西......
我认为应该可以使用IPython来实现PyCharm编辑器中所有变量的REAL代码完成....
有没有办法设置PyCharm使用IPython进行代码完成?
请注意,我不满意将代码发送到终端窗口/控制台,或类似的东西,我想在PyCharm的编辑器中完成代码...
我在Pycharm Ubuntu中看过像这样的问题添加ipython作为解释器,但它似乎是在控制台中使用IPython,而不是在编辑器中......在IDE中也有很多关于代码完成的问题,但他们似乎都有与PyCharm相同的令人不满意的代码完成程度......