繁体   English   中英

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

[英]How to get PyCharm to auto-complete code in methods?

当我使用像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

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

 def some_method(self, conn):
   """
   @type conn: EC2Connection
   """
   conn.<autocomplete>

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

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

Returns the list of something
"""

您可以通过pyCharm“package manager”安装库。

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

包裹清单

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

安装包

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

自动填充内部功能

希望这是你正在寻找的。

为了使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...)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM