如何让PyCharm自动完成方法中的代码?

时间:2011-03-15 08:42:59

标签: python autocomplete pycharm

当我使用第三方时l 像boto这样的图书馆,PyCharm似乎能够很好地自动完成

enter image description here

但是,只要我定义了自己的函数,自动完成就会在该函数内部发生故障。我理解为什么,因为我不能给函数任何关于它的参数的类型信息,所以它无法猜测如何自动完成。有没有解决这个问题的方法?

修改

我尝试使用docstring(对于Python 2),但仍然没有自动完成

def delete_oldest_backups(conn, backups_to_keep, backup_description):
    """
    delete_oldest_backups(EC2Connection, int, string)
    """

(还尝试boto.ec2.connection.EC2Connection而非EC2Connection

4 个答案:

答案 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口译员

Package list

在“包”列表中,单击“安装”并搜索要安装的库

Install package

安装完成后,编辑器将提供自动完成功能。

Autocomple inside function

希望这就是你要找的东西。