动态语言IDE中的自动补全,特别是在PyDev中的Python

5 投票
7 回答
3251 浏览
提问于 2025-04-16 02:47

我刚开始学习Python,之前主要用的是一些静态类型的语言,比如Java。

我选择了在Eclipse中使用PyDev作为我的开发环境,因为我查看了它的功能和受欢迎程度等。

让我感到震惊的是,自动补全似乎对内置函数的支持不太好。比如我在写完以下代码后尝试自动补全:

datafile = open(directory+"/"+account, 'r')
datafile.

结果没有给出有用的方法建议(比如realines)。只出现了一些像call这样的选项。

我习惯通过查看类定义和使用自动补全来快速了解一个语言的功能。我的PyDev“解释器”设置得很好,已经启用了“强制内置函数”。

请问在PyDev中能否实现内置函数的自动补全?我是不是用错了这个开发环境?也许应该在旁边运行一个解释器来测试代码?到目前为止,我觉得这些开发环境都不太强,比如IDLE在我新的Mac上用了两分钟就崩溃了。我很想知道有经验的Python开发者在探索不熟悉的(内置)模块时是怎么做的,因为这让我开始重新考虑我最初对Python的吸引力。我喜欢那种可以通过简单探索来学习的语言!

谢谢,

7 个回答

2

我想知道有经验的Python开发者在探索不熟悉的(内置)模块时都做些什么。

我使用ipython。Ipython是一个增强版的交互式命令行,它增加了自动补全和快速访问对象文档字符串的功能。它还提供了很多标准命令行没有的其他功能——你可以在这里找到它的功能总结。

5

为了让新读者了解Pydev的最新情况,这里更新一下:你提到的例子现在在Pydev中可以正常运行了。(顺便说一句,最好不要手动处理路径,应该使用os.path.join这个方法来处理。)

9

在我看来,Python的命令行比起使用集成开发环境(IDE)来探索新模块要好得多。别忘了,在Python中,你可以在命令行里做任何在程序中能做的事情,因为没有单独的编译步骤。而且在命令行中,你可以用 dir(x) 来查看x的所有属性和方法,不管x是模块、类还是其他什么东西。

更棒的是,增强版的 iPython 命令行可以为所有对象提供自动补全功能。

实际上,正因为这个原因,很多Python程序员,包括我自己,都不使用IDE,而只是用一个简单的文本编辑器(我用的是VIM)。

撰写回答