首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何让PyCharm在方法中自动补全代码?

如何让PyCharm在方法中自动补全代码?
EN

Stack Overflow用户
提问于 2011-03-15 16:42:59
回答 4查看 11.3K关注 0票数 19

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

然而,一旦我定义了我自己的函数,自动补全就会在该函数中崩溃。我理解其中的原因,因为我不能给函数提供任何关于其参数的类型信息,所以它不能猜测如何自动完成。有没有办法绕过这个问题?

编辑

我尝试使用文档字符串(对于Python 2),但仍然没有自动完成

代码语言:javascript
复制
def delete_oldest_backups(conn, backups_to_keep, backup_description):
    """
    delete_oldest_backups(EC2Connection, int, string)
    """

(也尝试了boto.ec2.connection.EC2Connection,而不仅仅是EC2Connection)

EN

回答 4

Stack Overflow用户

发布于 2013-07-23 17:56:13

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

代码语言:javascript
复制
 def some_method(self, conn):
   """
   @type conn: EC2Connection
   """
   conn.<autocomplete>
票数 14
EN

Stack Overflow用户

发布于 2011-03-15 20:17:06

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

代码语言:javascript
复制
"""
foo(int, string) -> list

Returns the list of something
"""
票数 5
EN

Stack Overflow用户

发布于 2012-02-10 18:02:51

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

代码语言:javascript
复制
assert isinstance(instanceX, ClassOfInstanceX)  
instanceX.{#list of method/properties appears}

或者,您也可以使用类名来调用方法或属性,每次您想调用它并将实例传递给self参数时。但这对我来说太冗长了,尤其是对于嵌套类

代码语言:javascript
复制
ClassOfInstanceX.{#list of method/properties appears}
     # then you will have...
ClassOfInstance.method(instanceX, args...)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5309279

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档