我总是在函数定义中使用类型提示,例如:
def foo(a: int, b: str) -> bool:
pass
当我使用PyCharm自动文档字符串生成器在我的代码中创建文档字符串时,我得到了:
def foo(a: int, b: str) -> bool:
"""
:param a:
:type a:
:param b:
:type b:
"""
pass
如您所见,PyCharm无法识别我在函数本身中定义的类型值,我应该再次将它们写入docstring中。我如何使PyCharm为我自动生成类似的内容(从第一行读取类型值并将其插入到文档字符串中):
def foo(a: int, b: str) -> bool:
"""
:param a:
:type a: int
:param b:
:type b: str
:rtype: bool
"""
pass
答案 0 :(得分:0)
转到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
答案 1 :(得分:0)
PyCharm Bugtracker上有一个功能请求:Generate docstring types based on the existed inline annotations
截至2020年底,PyCharm似乎仍不支持将方法中的类型信息自动添加到文档字符串中。
对功能请求有一条评论,询问为什么需要这种功能:
以下每个人的问题,为什么您需要在注释和文档字符串中都放入类型提示? PyCharm仅部分支持后一种格式(在此不理解所有可能的PEP 484类型提示,请参阅PY-23400),而大多数其他类型检查器根本无法识别。另一方面,注释中的类型提示已正确显示在快速文档和Sphinx呈现的文档中(也许借助sphinx-autodoc-typehints帮助)。