19

当我使用诸如boto之类的 3rd 方库时,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

4 回答 4

14

您可以使用类型提示: http: //www.jetbrains.com/pycharm/webhelp/type-hinting-in-pycharm.html

 def some_method(self, conn):
   """
   @type conn: EC2Connection
   """
   conn.<autocomplete>
于 2013-07-23T09:56:13.037 回答
5

您可以使用 Python 3 参数和返回值注释指定有关函数参数的类型信息。如果您使用的是 Python 2,您还可以在函数的文档字符串中指定信息。PyCharm 理解标准库中二进制模块的文档字符串使用的格式,例如:

"""
foo(int, string) -> list

Returns the list of something
"""
于 2011-03-15T12:17:06.050 回答
1

为了让 PyC​​harm 识别对象的实例并检索其所有方法,我们必须使用以下语句。但我认为这两者都是浪费编程和运行时间的可怕方式。

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...)
于 2012-02-10T10:02:51.173 回答
1

您可以通过 pyCharm“包管理器”安装该库。

转到设置-> 项目解释器-> Python 解释器

包装清单

在 Packages 列表中,单击 install 并搜索您要安装的库

安装包

安装后,自动完成功能将在编辑器上可用。

自动完成内部函数

希望这是您正在寻找的。

于 2014-03-14T10:34:36.853 回答