Python。提示变量
Python. Hint for variable
我正在使用 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 变量声明文档字符串?我知道 :type
和 :rtype
,但是我是否需要为特定变量声明类型?我可以声明几种类型吗?我该怎么办?
注意:我无法对 get_instance()
进行任何更改。
我不认为你可以通过文档字符串来做到这一点,但有一种机制叫做 annotation。您可以将任何表达式附加到冒号 :
后的参数和使用箭头 ->
的函数声明本身。例如:
def getInstance(param: str) -> MyClass
return some_var
为了便于说明,我在这里添加了一个输入参数。在这种情况下,str
和 MyClass
是分别表示预期输入和 return 类型的对象。它们永远不会直接在您的代码中使用,只是隐藏在一个 func_annotations
属性中,供关心此类事情的最终用户(例如编辑器)使用。
您可以按照 class 的描述属性相同的方式进行操作。这里的例子:
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 中的自动完成示例:
我正在使用 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 变量声明文档字符串?我知道 :type
和 :rtype
,但是我是否需要为特定变量声明类型?我可以声明几种类型吗?我该怎么办?
注意:我无法对 get_instance()
进行任何更改。
我不认为你可以通过文档字符串来做到这一点,但有一种机制叫做 annotation。您可以将任何表达式附加到冒号 :
后的参数和使用箭头 ->
的函数声明本身。例如:
def getInstance(param: str) -> MyClass
return some_var
为了便于说明,我在这里添加了一个输入参数。在这种情况下,str
和 MyClass
是分别表示预期输入和 return 类型的对象。它们永远不会直接在您的代码中使用,只是隐藏在一个 func_annotations
属性中,供关心此类事情的最终用户(例如编辑器)使用。
您可以按照 class 的描述属性相同的方式进行操作。这里的例子:
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 中的自动完成示例: