我使用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()
进行任何更改。
答案 0 :(得分:3)
我认为你不能通过docstring来做到这一点,但有一种叫做annotation的机制。您可以使用冒号:
将所需的表达式附加到冒号->
之后的参数,并使用箭头def getInstance(param: str) -> MyClass
return some_var
附加到函数声明本身。例如:
str
我在这里添加了一个输入参数用于说明。在这种情况下,MyClass
和func_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中的自动完成示例: