如何让PyCharm在方法中自动完成代码?
当我使用像 boto 这样的第三方库时,PyCharm 的自动补全功能似乎很好用。
但是,一旦我自己定义了一个函数,自动补全功能在这个函数内部就失效了。我明白这是为什么,因为我没有给这个函数的参数提供任何类型信息,所以它无法猜测如何进行自动补全。有没有办法解决这个问题呢?
编辑
我尝试使用文档字符串(针对 Python 2),但仍然没有自动补全。
def delete_oldest_backups(conn, backups_to_keep, backup_description):
"""
delete_oldest_backups(EC2Connection, int, string)
"""
(我还尝试了 boto.ec2.connection.EC2Connection
,而不仅仅是 EC2Connection
)
4 个回答
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...)
5
你可以在Python 3中通过参数和返回值的注解来说明函数参数的类型信息。如果你在使用Python 2,也可以在函数的文档字符串中提供这些信息。PyCharm能够理解标准库中二进制模块的文档字符串格式,比如:
"""
foo(int, string) -> list
Returns the list of something
"""
14
你可以使用类型提示:http://www.jetbrains.com/pycharm/webhelp/type-hinting-in-pycharm.html
def some_method(self, conn):
"""
@type conn: EC2Connection
"""
conn.<autocomplete>