我已经使用ST2很长一段时间了,鉴于python现在是我的主要语言,我决定尝试PyCharm。它有些混乱,我对Sublime的爱让我远离。然而,PyCharm能以某种方式完成以下Sublime无法做到的事情:
它有更重要的功能,Sublime还不能做到。我在Sublime中已经安装了很多软件包,除了上面的3件事之外,几乎可以做PyCharm。
回到问题:鉴于Python不是强类型语言,PyCharm如何提供此功能?
答案 0 :(得分:10)
如果您正在寻找更好的自动完成功能,请尝试通过套餐控制提供的SublimeCodeIntel。索引内置模块和第三方软件包需要一段时间,但一旦准备好它就会非常有用。例如,使用Pandas,我可以定义一个数据帧:
df = pd.DataFrame(some_input_data)
然后键入df.
,并出现DataFrame
对象的所有关联类和方法。要进行此设置,您需要将以下内容添加到用户首选项(Preferences -> Settings - User
):
"auto_complete_triggers":
[
{
"characters": ".",
"selector": "source"
}
]
以及您可能拥有的任何其他触发器。
虽然SublimeCodeIntel是一个不错的软件包,它并不总是运行良好 - 它有时会发现找到新安装的模块的问题,数据库可能会被破坏,自动完成时有时会出现严重延迟,它在virtualenvs上有问题,以及有时它只是不起作用。如果您使用的是Sublime Text 3,我强烈建议您使用Anaconda
(与Anaconda Python发行版无关)。一旦你设置它(一个非常简短的过程,基本上你只是指定你想要使用哪个Python解释器),它就可以了。没有数据库可以初始化或损坏,它会在你添加新软件包时自动发现,它在后台运行时非常不引人注目......我不能说它有多好处。它使用JEDI自动完成模块等,并且快速准确。它自动确定哪些类型变量,并使用可在其上调用的适当方法和类填充完成。你可以让它完成参数完成,但这对我来说有点烦人,所以我把它关了。它不能做的一件事是方法链,但没有什么是完美的。它还包括用于代码复杂性检查和linting的模块,这很好,但是我不需要它,并且只想在lint时想要lint,所以我也关闭了它。它和SublimeCodeIntel之间的另一个主要区别是Anaconda是特定于Python的,而SCI支持许多不同的语言。
我强烈建议尝试一下Anaconda。除了方法链接,我一直很满意,并没有回去。您可以做的一件很酷的事情是为项目文件中的"python_interpreter"
设置分配不同的值,这样您就可以轻松使用virtualenvs,或者(就像我一样)为Python 2编码打开一个项目,为Python 3打开另一个项目