Python 2.7 python变量提示

Python 2.7 python变量提示,python-2.7,docstring,Python 2.7,Docstring,我正在使用PyCharm作为编辑器。例如,我有下一个函数: def get_instance(): # method without doc sctring in some module # returns instance of MyClass return some_var 我还有第二个文件,它调用get\u instance(): 如何定义值的数据类型?我想对变量使用自动完成 例如,在php中,它将如下所示: /** @var MyClass $var */ $v

我正在使用
PyCharm
作为编辑器。例如,我有下一个函数:

def get_instance():
    # method without doc sctring in some module
    # returns instance of MyClass
    return some_var
我还有第二个文件,它调用
get\u instance()

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

例如,在
php
中,它将如下所示:

/** @var MyClass $var */
$var = getInstance();
var = get_instance()
"""
:type var: example_module.MyClass
"""
在此之后,我将看到
$var
的所有方法和属性。如何为python变量声明docstring?我知道
:type
:rtype
,但我是否需要为特定变量声明type?我可以声明一些类型吗?我该怎么办


注意:我无法使用
get\u instance()

进行任何更改,我认为您无法通过docstring进行更改,但有一种机制称为。您可以使用箭头
->
将任何表达式附加到冒号后面的参数和函数声明本身。例如:

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

为了便于说明,我在这里添加了一个输入参数。在本例中,
str
MyClass
分别是表示预期输入和返回类型的对象。它们从不直接在代码中使用,只是隐藏在一个
func_annotations
属性中,供关心这类事情的最终用户(如编辑器)使用。

我不认为可以通过docstring实现这一点,但有一种机制称为。您可以使用箭头
->
将任何表达式附加到冒号后面的参数和函数声明本身。例如:

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

为了便于说明,我在这里添加了一个输入参数。在本例中,
str
MyClass
分别是表示预期输入和返回类型的对象。它们从不直接在代码中使用,只是隐藏在一个
func_annotations
属性中,供关心这类事情的最终用户(如编辑器)使用。

您可以用与类的描述属性相同的方法来做。例如:

from example_module import MyClass

var = get_instance()
"""
:type var: MyClass
"""
您还可以使用描述而不导入,如下所示:

/** @var MyClass $var */
$var = getInstance();
var = get_instance()
"""
:type var: example_module.MyClass
"""
第二种方法是使用:

Pycharm中的自动完成示例:


您可以使用与类的描述属性相同的方法来执行此操作。例如:

from example_module import MyClass

var = get_instance()
"""
:type var: MyClass
"""
您还可以使用描述而不导入,如下所示:

/** @var MyClass $var */
$var = getInstance();
var = get_instance()
"""
:type var: example_module.MyClass
"""
第二种方法是使用:

Pycharm中的自动完成示例:


您看过了吗?您能澄清一下您到底需要或想要在哪里使用docstrings吗?@Rightleg在代码的任何位置。示例:
get\u docker()
return
docker
instance(我知道它)。但是函数没有docstring,我无法更改它。因此,我调用
var=get\u docker()
。我想定义
var
的类型(即它是docker实例)。@Olian04它只适用于python 3。对吗?还有一件事:我不能改变函数。我只需要定义变量的类型。请看我上面的评论。你看了吗?你能澄清一下你到底需要或想要在哪里使用docstrings吗?@Rightleg在代码的任何地方。示例:
get\u docker()
return
docker
instance(我知道它)。但是函数没有docstring,我无法更改它。因此,我调用
var=get\u docker()
。我想定义
var
的类型(即它是docker实例)。@Olian04它只适用于python 3。对吗?还有一件事:我不能改变函数。我只需要定义变量的类型。请看我上面的评论。谢谢你的回答。但我如何知道它只适用于Python3。这是真的吗?类似的方法-使用
:在docsting中为每个参数键入
。但有时指定变量的实例很方便(特别是当您无法更改调用的函数的docstring时)。谢谢您的回答。但我如何知道它只适用于Python3。这是真的吗?类似的方法-使用
:在docsting中为每个参数键入
。但有时指定变量的实例很方便(特别是当您无法更改调用的函数的docstring时)。