蟒蛇。提示变量

问题描述 投票:0回答:2

我正在使用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()进行任何更改。

python-2.7 docstring
2个回答
3
投票

我不认为你可以通过docstring做到这一点,但有一种叫做annotation的机制。你可以在冒号:之后附加你想要的任何表达式,并使用箭头->附加到函数声明本身。例如:

def getInstance(param: str) -> MyClass
    return some_var

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


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

© www.soinside.com 2019 - 2024. All rights reserved.