Python和智能感知

有没有相当于Python的“intellisense”?

也许我不应该承认,但是我发现intellisense确实加快了学习一种新语言的“发现阶段”。 例如,从VB.net切换到C#是一件轻而易举的事情,由于片段和intellisense帮助我。

这篇博文解释了如何将Vim设置为Python IDE,他涵盖了类似于Intellisense的function:

Python Intellsense wp-content/uploads/2009/05/omnicompletion.png

这在Vim 7中是标准的。在Vim中有很多其他非常有用的python开发插件,比如Pyflakes ,它可以检测代码, Python_fn.vim提供了操作python缩进和代码块的function。

Eclipse的PyDev环境具有Python的智能感知function。 保持交互式控制台打开,以及help(item)function是非常有用的。

看看在Visual Studio的Python工具 ,他们提供代码完成(又名智能感知),debugging等…

下面是python的交互式shell的屏幕截图,显示代码完成。

在这里输入图像说明

语言的dynamic性往往使自动完成types分析变得困难,因此上述各种完成设施的质量变化很大。

虽然这不是你所要求的,但ipython shell对于探索性的工作非常有用。 当我正在使用新的模块时,我倾向于把它放到ipython中并捅它。 经过上面提到的大部分解决scheme(虽然Wing已经有多年了),ipython的完成设施始终更可靠。 两个主要的探索工具是选项卡完成,并附加一个问号到模块/函数名称来获得帮助文本,例如:

 In [1]: import sqlalchemy In [2]: sqlalchemy.s #tab completion sqlalchemy.schema sqlalchemy.select sqlalchemy.sql sqlalchemy.subquery In [2]: sqlalchemy.select? #Shows docstring In [3]: sqlalchemy.select?? #Shows method source In [4]: edit sqlalchemy.select #opens the source in an editor 

我强烈推荐PyDev 。 在Pydev中,你可以把你正在使用的模块放在Forced Buildins中 ,大部分的代码完成工作比其他的像KOMODO EDIT更好。

另外我认为IPython是非常有帮助的。 由于它是IPython中的“运行时”,因此IPython中的代码完成不会错过任何东西。

Python附带的IDLE编辑器具有智能感知function,可以自动发现导入的模块,函数,类和属性。

PyCharm是支持IntelliSense的最好的Python IDE。

例如Wingware实现自动完成,请参阅http://wingware.com/doc/edit/auto-completion

我会推荐科莫多编辑 。 不过,我应该指出一点:你不会像Visual Studio的C#intellisense那样得到任何东西。 Python的dynamic特性可能会使得这些function变得困难。

ctags + vim也能正常工作,虽然它没有intellisense那么强大。 在ipython中使用这个,你可以得到在线帮助,自动完成名字等等。但是这显然是面向命令行的。

Eclipse + pydev也可以做到这一点,但我没有经验: http : //pydev.sourceforge.net/

那么,我认为学习Python最有活力的方法就是使用iPython 。

使用Tab时,你可以自动完成,dynamic行为,因为它是一个shell,你可以得到任何对象/方法types的完整文档:

 object.method ? 

开发时,我同意PyDev很酷。 但是这很重,所以在学习的时候,一个文本编辑器+ iPython真的很棒。

Pyscripter有我认识的最好的intellisense 🙂

对于emacs和VI也有https://github.com/tkf/emacs-jedi

我会build议jedi-vim ,这对我来说是完美的,尝试一下,你不会后悔的。

IronPython是要走的路。 Visual Studio具有最好的智能感知支持,您可以使用IronPython

尝试Visual Studio代码。 它具有非常强大的Python和Django支持,以及用于Python项目中的其他语言的数千个插件,如CSS,HTML和Django模板。

最棒的是,它是免费的: https : //code.visualstudio.com