蟒蛇。提示变量

时间:2016-11-11 15:09:07

标签: python-2.7 docstring

我使用PyCharm作为编辑。例如,我有下一个功能:

def get_instance():
    # method without doc sctring in some module
    # returns instance of MyClass
    return some_var

我有第二个调用get_instance()的文件:

var = get_instance()

如何定义值的数据类型?我想对变量使用自动完成功能。

例如在php中,它将是这样的:

/** @var MyClass $var */
$var = getInstance();

在此之后,我将看到$var的所有方法和属性。如何为python变量声明docstring?我知道:type:rtype,但是如果我需要为特定变量声明类型?我可以申报几种类型吗?我该怎么做?

注意:我无法使用get_instance()进行任何更改。

2 个答案:

答案 0 :(得分:3)

我认为你不能通过docstring来做到这一点,但有一种叫做annotation的机制。您可以使用冒号:将所需的表达式附加到冒号->之后的参数,并使用箭头def getInstance(param: str) -> MyClass return some_var 附加到函数声明本身。例如:

str

我在这里添加了一个输入参数用于说明。在这种情况下,MyClassfunc_annotations分别是表示预期输入和返回类型的对象。它们从未在您的代码中直接使用,只是隐藏在$ node --inspect index.js node: bad option: --inspect 属性中,供最终用户关注那类事物(如编辑器)。

答案 1 :(得分:0)

您可以使用与类的描述属性相同的方式执行此操作。这里的例子:

from example_module import MyClass

var = get_instance()
"""
:type var: MyClass
"""

你也可以使用不带导入的描述:

var = get_instance()
"""
:type var: example_module.MyClass
"""

第二种方式正在使用PEP 484

test = my()  # type: dict

Pycharm中的自动完成示例:

enter image description here

enter image description here

enter image description here