如何让 PyC​​harm 从函数定义中获取类型提示并在文档字符串中填充类型值?

all*_*ool 10 python types docstring pycharm

我总是在函数定义中使用类型提示,例如:

def foo(a: int, b: str) -> bool:
    pass
Run Code Online (Sandbox Code Playgroud)

当我使用 PyCharm 自动文档字符串生成器在我的代码中生成文档字符串时,我得到了这个:

def foo(a: int, b: str) -> bool:
    """
    :param a: 
    :type a: 
    :param b: 
    :type b: 
    """
    pass
Run Code Online (Sandbox Code Playgroud)

如您所见,我在函数本身中定义的类型值没有被 PyCharm 识别,我应该再次将它们写在 docstring 中。我如何让 PyC​​harm 为我自动生成这样的东西(从第一行读取类型值并将它们插入到文档字符串中):

def foo(a: int, b: str) -> bool:
    """
    :param a:
    :type a: int
    :param b:
    :type b: str
    :rtype: bool
    """
    pass
Run Code Online (Sandbox Code Playgroud)

Ari*_*ion 7

PyCharm Bugtracker 上有一个功能请求:根据现有的内联注释生成文档字符串类型

截至 2020 年底,PyCharm 似乎仍然不支持将方法中的类型信息自动添加到文档字符串中。

功能请求中有一条评论询问为什么需要这样的功能:

下面的每个人都有一个问题,为什么需要在注释和文档字符串中添加类型提示?PyCharm 仅部分支持后一种格式(并非所有可能的 PEP 484 类型提示都能被理解,请参阅 PY-23400),并且大多数其他类型检查器根本无法识别。另一方面,注释中的类型提示已经在快速文档和 Sphinx 呈现的文档中正确显示(可能在 sphinx-autodoc-typehints 的帮助下)。


Esk*_*app -2

Settings -> Editor -> Intentions。在那里,在类别下Python,勾选方框Specify type for reference in docstring

一旦激活,您就可以使用调试器及其功能:Insert documentation string stub填充函数的文档字符串。(请注意,您需要激活Collect runtime information for code insight位于的选项Settings -> Build, Execution, Deployment -> Python Debugger

该过程的细节有点长,所以我将提供有关此内容的官方 PyCharm 教程的链接:https://www.jetbrains.com/help/pycharm/using-docstrings-to-specify-types.html