当我使用第三方时l 像boto这样的图书馆,PyCharm似乎能够很好地自动完成
但是,只要我定义了自己的函数,自动完成就会在该函数内部发生故障。我理解为什么,因为我不能给函数任何关于它的参数的类型信息,所以它无法猜测如何自动完成。有没有解决这个问题的方法?
修改
我尝试使用docstring(对于Python 2),但仍然没有自动完成
def delete_oldest_backups(conn, backups_to_keep, backup_description):
"""
delete_oldest_backups(EC2Connection, int, string)
"""
(还尝试boto.ec2.connection.EC2Connection
而非EC2Connection
)
答案 0 :(得分:14)
您可以使用类型提示:http://www.jetbrains.com/pycharm/webhelp/type-hinting-in-pycharm.html
def some_method(self, conn):
"""
@type conn: EC2Connection
"""
conn.<autocomplete>
答案 1 :(得分:5)
您可以使用Python 3参数和返回值注释指定有关函数参数的类型信息。如果您使用的是Python 2,则还可以在函数的docstring中指定信息。 PyCharm理解标准库中二进制模块的文档字符串使用的格式,例如:
"""
foo(int, string) -> list
Returns the list of something
"""
答案 2 :(得分:1)
为了让PyCharm识别对象的实例并检索其所有方法,我们必须使用以下语句。但我认为两者都是浪费编程和运行时间的可怕方式。
assert isinstance(instanceX, ClassOfInstanceX)
instanceX.{#list of method/properties appears}
或者,您也可以使用类名在每次调用它时调用方法或属性,并将实例传递给self参数。但这对于我的喜好来说太冗长了,尤其是对于嵌套类
ClassOfInstanceX.{#list of method/properties appears}
# then you will have...
ClassOfInstance.method(instanceX, args...)
答案 3 :(得分:1)
您可以通过pyCharm“package manager”安装库。
转到设置 - &gt;项目口译员 - &gt; Python口译员
在“包”列表中,单击“安装”并搜索要安装的库
安装完成后,编辑器将提供自动完成功能。
希望这就是你要找的东西。