【问题标题】:Free Python programming environement with autocompletion具有自动完成功能的免费 Python 编程环境
【发布时间】:2011-12-24 20:58:09
【问题描述】:

我已经查看了大多数 IDE。我已经将 vim 设置为使用自动完成功能,我现在正在使用它。但是,我似乎无法让它像使用 .NET 的 Visual Studio 一样工作。自动补全似乎只在某些情况下有效,它只显示方法而不是它们采用的参数。它对我来说几乎无法使用。

我想要的是一个弹出窗口,它将显示所有可用的方法以及它们采用的参数。当您在编写 .NET 时,几乎是 VS2010 的感觉。

【问题讨论】:

  • 是的,这是我偶然发现的第一个。但是,很多 IDE 都有自动完成功能,这似乎不起作用。我已经尝试过 Eric4,自动完成功能只会自动完成页面上已经使用的内容。它应该自动完成所有内容,但事实并非如此。
  • 自动完成功能在具有无类型参数的语言上非常困难。我的意思是,它怎么知道?我想你会发现在 Python 这样的语言中自动完成的机会比在编辑器可以在写入时合理地知道每个变量的类型的语言中要少。
  • 不要指望 Python 可以完全自动完成,类型字典太动态了。
  • 我明白了。我以为我可以得到类似 C# 的东西。

标签: python visual-studio ide autocomplete


【解决方案1】:

在 Python 等动态语言中,您不会像在更显式类型的语言中那样获得自动完成功能。考虑:

 def MyFunction(MyArg):
      MyArg.

当您键入“.”时在MyArg. 中,您希望编辑器提供带有参数的方法列表。这在 Python 中不会发生,因为编辑器完全无法知道 MyArg 可能是什么类型(或多个类型)。即使是 Python 编译器在编译代码时也没有这些信息。这就是为什么,如果你输入MyArg.SomeNonExistentFunction(),直到运行时才会收到任何类型的错误消息。

如果你写了这样的东西:

 def MyFunction:
      MyObject = MyClass(SomeArg)
      MyObject.

然后一个足够聪明的编辑器可以在最后一个“.”之后提供可用的方法列表。

您会发现那些“有时”提供自动完成功能的编辑器在类似于我的第二个示例的情况下会这样做,而在类似于第一个示例的情况下不会这样做。使用 Python,尽您所能。

【讨论】:

  • 啊哈,我明白了!好吧,至少我发现了似乎对 C++ 有用的 Omni Complete。有什么可以用作图书馆参考的吗?目前我必须去筛选所有文档并找到我想要的方法。我真的很想得到一个方法和参数的列表,别无其他 - 更快。
  • 标准库有完整的在线文档。但是,大多数分布式 Python 代码都被编写为自记录的。您可以导入您感兴趣的包,并在对象、类或函数上使用函数dir()help(),以获取有关它们包含哪些成员以及如何使用它们的信息。
【解决方案2】:

我使用带有PyDev 扩展名的Eclipse 已经有一段时间了。那里的自动完成确实令人印象深刻,我强烈推荐它。

【讨论】:

  • 是的,我检查了它,但是当我尝试安装它时,Eclipse 说有一些错误。我想知道是不是因为我在运行 Galileo(不是最新版本)。
【解决方案3】:

Gedit 有一个开发者插件,它尝试做一些语法补全。由于已经提到的原因,它不能很好地工作。我发现它比有用更烦人,并在几周试用后将其禁用。

ipython 的新 Qt 控制台具有选项卡完成功能,您可以使用一些带有语法帮助和文档字符串的工具提示类型的弹出窗口。例如,请参见下面的屏幕截图..

但正如大多数人已经指出的那样,您要求的这种东西确实更适合动态性较低的语言。


【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-23
    • 2013-05-14
    • 2022-01-10
    • 2022-08-15
    相关资源
    最近更新 更多