如何在Google风格的Pydoc for Pycharm中表示返回类型元组?

Mar*_*lka 11 python pydoc pycharm

在Pycharm中,我希望有一个记录的函数,它返回一个元组,以便我可以在其上获得代码.评论的风格是谷歌风格.


工作正常:

def func():
    """

    Returns:
        str: something

    """
    pass
Run Code Online (Sandbox Code Playgroud)

func().正确键入显示方法str.


然而,键入此工作了:

def func():
    """

    Returns:
        (int, str): something

    """
    pass

a, b = func()
Run Code Online (Sandbox Code Playgroud)

打字b.不提供任何东西.


我知道PyCharm能够解析元组,因为这段代码有效:

def func():
    """

    :rtype: (int, str)
    """
    pass

a, b = func()
Run Code Online (Sandbox Code Playgroud)

但是,这不符合谷歌的风格.


如何根据标准记录函数,以便Pycharm接收返回类型?

Tal*_*dar 5

我是这样做的:

from typing import Tuple

def func() -> Tuple[int, str]:
    """ (...)

    Returns:
        A tuple containing, respectively, an int (<meaning of the
        returned int>) and a string (<meaning of the returned string>).
    """
Run Code Online (Sandbox Code Playgroud)

PyCharm(和 Sphinx,如果您使用它来解析文档字符串)将正确地知道函数的返回类型,并且您将获得函数返回值的清晰且漂亮的描述。


小智 0

来自 sphinxcontrib 的文档页面

Returns部分支持任何 reStructuredText 格式,
包括文字块::

        {
            'param1': param1,
            'param2': param2
        }
Run Code Online (Sandbox Code Playgroud)

文档

这表示 Google 样式支持内部的 reStructuredText 格式,并且使用以下格式会返回元组自动完成选项。

def func():
    """

    Returns:
        :rtype: (int, str)

    """
    pass

a, b = func()
Run Code Online (Sandbox Code Playgroud)

这是您正在寻找的解决方案吗?