Python和Intellisense


70

Python是否有等同于“ intellisense”的功能?

也许我不应该承认,但我发现拥有智能感知确实可以加快学习新语言的“发现阶段”。例如,由于片段和智能感知的帮助,从VB.net切换到C#变得轻而易举。


感谢您提出的所有宝贵建议!
安德鲁·哈里

2
喜欢随机近距离投票-这是怎么回事?
安德鲁·哈里


1
您需要的是“自动代码完成”-在stackoverflow.com/questions/81584/what-ide-to-use-for-python中
Tom Leys

1
所有选项可能都包含在许多标记为python + ide的问题中:stackoverflow.com/questions/tagged/python+ide。具体来说,这看起来像是几乎完全相同的副本:stackoverflow.com/questions/698/…–
Jonik,

Answers:


32

这篇博客文章解释了如何将Vim设置为Python IDE,他介绍了类似Intellisense的功能:

Python Intellsense
(来源:dispatched.ch

这在Vim 7中是标准的。还有许多其他非常有用的插件可用于Vim中的python开发,例如 Pyflakes可以即时检查代码,而Python_fn.vim提供了用于处理python缩进和代码块的功能。


1
Emacs是否有类似的东西?
JS 2009年

1
恐怕我不使用emacs!我遇到了此博客条目,但无法对其质量发表任何评论:hide1713.wordpress.com/2009/01/30/…–
编辑


23

看看Visual Studio的python工具,它们提供代码完成(又名intellisense),调试等...

以下是python交互式外壳的屏幕截图,显示了代码完成情况。

在此处输入图片说明


2
请记住,智能感知不仅是代码完成,它是一个通用术语,当您将鼠标悬停在函数或变量上时,也适用于工具提示,也就是代码透视,可以在突出显示的compile方法的右侧看到。这几乎是所有Python IDE都无法正常运行的功能,Eclipse只是关闭而已,但是它并没有向您显示变量可以容纳的类型,或者函数可以执行/返回的类型。(您的屏幕截图中的
RE_Pattern

18

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


而且与我尝试过的其他Python“ IDE”不同,它甚至可以正确实现C扩展(至少是PyQt4)。

14

语言的动态性质倾向于使自动完成类型分析变得困难,因此上面提到的各种完成工具的质量千差万别。

尽管这并不是您所要求的,但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

9

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


或者您也可以使用dir(object)该属性列表。但这远非我惯用的信息灵通。
Tcll

8

我强烈推荐PyDev。在Pydev中,您可以将要使用的模块放入强制构建,大多数情况下,代码完成将比KOMODO EDIT等其他IDE更好。

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


1
我不建议使用PyDev。我已经在Django上进行了一些尝试,并且在涉及Akismet或Markdown之类的插件时有很多未解决的依赖项。我尝试了许多解决方案,但最终没有成功。我听说过很多有关PyCharm的信息,但还没有亲自尝试过。
Wojtek 2013年

@Wojtek,您是否要推荐另一个IDE?我尝试了PyDev,Sublime和Komodo Edit,并且Komodo非常好,因为与Eclipse相比,它轻巧,但是在设置或理解它的智能工作方式时遇到了一些麻烦...
RPDeshaies 2013年

1
@ Tareck117不,我不是真正的pythonist,我只是偶尔偶尔尝试一下。我使用Sublime,但仅用于单文件脚本,它本身不是IDE。正如我所说,我可以推荐PyCharm,我的一些pythonist朋友都喜欢并喜欢它。我听说它最近是免费的(社区版),具有一些有限的功能,但是可以正常工作。您应该尝试一下。这是一种商业产品,所以我想他们可以使其正常工作,但不能保证。
Wojtek

VS2010(不能使用更高版本)与Python Tools是我使用过的最好的智能感知软件,Eclipse / PyDev并没有提供太多信息。
Tcll


6

我建议Komodo Edit。但是,我应该指出一点:您不会获得像使用Visual Studio的C#intellisense所获得的那样出色的任何东西。Python的动态特性使其很难执行这些功能。




4

好吧,我认为学习Python的最动态方式是使用iPython

使用制表符,动态行为时会自动补全,因为它是一个外壳,并且您可以获得有关任何对象/方法键入的完整文档:

object.method ?

开发时,我同意PyDev很酷。但是它很重,因此在学习时,文本编辑器+ iPython确实很棒。


2

Pyscripter具有我遇到的最好的智能:)


1
在pyscripter中没有智慧。它仅具有基本的自动完成功能。
dns

1
您确实需要使用Visual Studio mate,PyScripter是我使用过的最糟糕的高端IDE之一。
Tcll

3
在这一点上,我建议皮查姆。它已经变得非常好。
hugo24'9



0

IronPython是必经之路。Visual Studio具有最好的智能感知支持,您可以使用IronPython来利用它


我建议只坚持使用普通的python,.NET是非常糟糕的。。。但是同意VS具有最好的intellisense。
Tcll

0

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

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.