Python是否有等同于“ intellisense”的功能?
也许我不应该承认,但我发现拥有智能感知确实可以加快学习新语言的“发现阶段”。例如,由于片段和智能感知的帮助,从VB.net切换到C#变得轻而易举。
Python是否有等同于“ intellisense”的功能?
也许我不应该承认,但我发现拥有智能感知确实可以加快学习新语言的“发现阶段”。例如,由于片段和智能感知的帮助,从VB.net切换到C#变得轻而易举。
Answers:
这篇博客文章解释了如何将Vim设置为Python IDE,他介绍了类似Intellisense的功能:
(来源:dispatched.ch)
这在Vim 7中是标准的。还有许多其他非常有用的插件可用于Vim中的python开发,例如 Pyflakes可以即时检查代码,而Python_fn.vim提供了用于处理python缩进和代码块的功能。
看看Visual Studio的python工具,它们提供代码完成(又名intellisense),调试等...
以下是python交互式外壳的屏幕截图,显示了代码完成情况。
compile
方法的右侧看到。这几乎是所有Python IDE都无法正常运行的功能,Eclipse只是关闭而已,但是它并没有向您显示变量可以容纳的类型,或者函数可以执行/返回的类型。(您的屏幕截图中的
语言的动态性质倾向于使自动完成类型分析变得困难,因此上面提到的各种完成工具的质量千差万别。
尽管这并不是您所要求的,但ipython shell非常适合进行探索性工作。当我使用新模块时,我倾向于将其拉入ipython并戳它。尝试过上述大多数解决方案(尽管距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
我建议Komodo Edit。但是,我应该指出一点:您不会获得像使用Visual Studio的C#intellisense所获得的那样出色的任何东西。Python的动态特性使其很难执行这些功能。
例如,Wingware实现了自动完成功能,请参见http://wingware.com/doc/edit/auto-completion。
ctags + vim也可以,尽管它不如intellisense强大。与ipython一起使用时,您可以获得在线帮助,自动名称完成等。但这显然是面向命令行的。
Eclipse + pydev也可以做到,但是我没有经验:http : //pydev.sourceforge.net/
对于emacs和VI,还有https://github.com/tkf/emacs-jedi。
尝试使用Visual Studio代码。它具有强大的Python和Django支持,以及数以千计的Python项目中使用的其他语言的插件,例如CSS,HTML和Django模板。
最重要的是,它是免费的:https : //code.visualstudio.com