5

我是 Python 新手,具有静态类型语言的背景,包括大量 Java。

在检查了特性/受欢迎程度等之后,我决定将 Eclipse 中的 PyDev 作为 IDE。

我很震惊,自动完成功能似乎不适用于内置插件。例如,如果我在数据文件上尝试自动完成:

数据文件=打开(目录+“/”+帐户,'r')数据文件。

没有建议有用的方法(例如 realines)。只有call之类的东西。

我习惯于通过跳入类定义并使用大量自动完成来快速查看类将做什么来学习一门语言。我的 PyDev '解释器' 用'强制内置' 设置得很好。

是否可以使用 PyDev 为内置函数自动完成?我是否错误地接近 IDE,即应该有一个解释器在旁边运行并用它测试东西?到目前为止,IDE 似乎很弱,例如 2 分钟后,我的新 Mac 上出现了 IDLE 段错误。我很想知道有经验的 Python 开发人员在探索不熟悉的(内置)模块时会做什么,因为这让我重新考虑我最初对 Python 的吸引力。我喜欢一种可以通过轻松探索来学习的语言!

谢谢,

4

7 回答 7

9

在我看来,Python shell 比依赖 IDE 更适合探索新模块。不要忘记,在 Python 中,您可以在 shell 中做任何可以在程序中做的事情,因为没有单独的编译步骤。并且在 shell 中,您可以使用它dir(x)来查找 x 的所有属性和方法,无论 x 是一个模块、一个类还是其他什么。

更好的是,增强的iPython shell 确实为所有对象提供了制表符补全。

事实上,正因为如此,许多 Python 程序员——包括我自己——根本不使用 IDE,而只是一个简单的文本编辑器(我使用 VIM)。

于 2010-08-14T09:15:17.473 回答
5

只是为了让它保持最新,这样新读者就不会对 Pydev 的当前状态感到困惑——你给出的例子现在在 Pydev 中有效。(顺便说一句,应该避免手动操作路径 - 改用 os.path.join )

于 2012-02-24T11:32:36.997 回答
2

我很想知道有经验的 Python 开发人员在探索不熟悉的(内置)模块时会做什么

我使用ipython。Ipython 是交互式 shell 的增强版本,它添加了制表符完成和对对象的文档字符串的快速访问。它还提供了标准 shell 所没有的许多其他功能 - 您可以在此处找到其功能的摘要。

于 2010-08-14T09:28:25.837 回答
0

您可能想看看 WingIDE。它会正确自动完成您的数据文件。

如果它无法推断类型,您可以使用类似的断言

assert isinstance(datafile, file)

帮助自动完成器

于 2010-08-14T10:42:08.130 回答
0

这里有比较了解的人可以给你详细的解答。这是一个简短的。

动态类型语言的自动完成本质上永远不会像静态类型语言那样丰富。例如open,在编写代码时无法确定返回类型是什么。与 Java 等静态类型语言不同,方法签名不包含返回类型。因此,IDE 无法给您任何提示。

您当然应该在任何 Python 开发过程中运行 REPL。解释型语言的一个优点是您可以在进行过程中在 REPL 上测试一小段代码。它也是测试您对内置模块和其他模块如何工作的理解的好地方。

我在 Ubuntu 上工作,所以我不知道在 Mac 上运行 IDLE 是多么容易或困难。我通常使用非常方便的iPython来满足 REPL 需求,并使用 Pydev 进行其他开发(例如 Django)。您可能想尝试一下 iPython。

于 2010-08-14T09:14:41.513 回答
0

你想要IPython。正如 Daniel 上面所指出的,交互式 shell 是探索 Python(实际上也是大多数其他语言)的一种更好的方式。

可能有助于在 OSX 上进行设置。

于 2010-08-14T09:29:41.637 回答
0

我在工作中使用 PyDev,所以我知道你来自哪里。如果您愿意考虑其他工具,请查看JetBrains 的 PyCharm,这是我自己项目的新首选 Python IDE。没有什么从属关系可言,只是说我会在它退出测试版时接手它。:)

于 2010-08-14T18:33:35.597 回答