假设我有一个带有docstring的函数,我在其中将返回类型声明为带有两个字符串的元组:
def foo():
"""
Returns:
Tuple[str, str]: Tuple of first name and last name
"""
如果除了文档字符串中的任何地方都没有使用Tuple
,我应该从typing
导入{{1}}吗?
答案 0 :(得分:1)
PyCharm对类型提示的文档字符串支持实际上并未使用Activity
。您不需要导入模块。
typing
模块仅用于支持批注在运行时执行的事实。对于以typing
开头的语句,Python实际上将对表达式def foo() -> Tuple[str, str]:
进行求值,因此希望能够解析名称。 (从Python 3.7开始,您可以使用Tuple[str, str]
禁用(或更确切地说,是 postpone )。)
但是,通常不会评估文档字符串,并且不应包含可运行的Python代码。
除非您有硬性要求将类型信息放入文档字符串中,否则我会坚持使用实际注释:
from __future__ import annotations
答案 1 :(得分:0)
你不知道。文档字符串只是注释。解释器将忽略它们。因此,请勿导入它,否则代码检查工具(例如pylint
)将抱怨未使用的导入。
但是,对于实际代码部分,最好在文档字符串中使用反引号。例如
"""
Returns:
`Tuple[str, str]`: Tuple of first name and last name
"""
这样,文档生成工具就知道它是实际的代码,并且可以正确地设置其格式。