版本1.3.4的Sphinx-doc拿破仑Google样式文档字符串示例here显示,应记录函数/方法的可选参数,如下所示:
param2 (str, optional): The second parameter. Defaults to None.
Second line of description should be indented.
但是版本1.4a0 here的同一页面显示了执行相同操作的以下方法:
param2 (Optional[str]): The second parameter. Defaults to None.
Second line of description should be indented.
但是我在the documentation中看不到对此新语法的任何解释。在哪里可以找到有关狮身人面像文档的拿破仑扩展的Google样式文档字符串中支持的新语法的更多信息?
查看function module_level_function
that you linked开头的文档,您会看到:
module_level_function
最后一行包含一个提示。显然,您在def module_level_function(param1, param2=None, *args, **kwargs):
"""This is an example of a module level function.
Function parameters should be documented in the ``Args`` section. The name
of each parameter is required. The type and description of each parameter
is optional, but should be included if not obvious.
Parameter types -- if given -- should be specified according to
`PEP 484`_, though `PEP 484`_ conformance isn't required or enforced.
# ^^^^^ this! ^^^^
中引入了由[[PEP 484
模块辅助的符号。
PEP 484
基于功能注释,如typing
中所述;本质上,每个函数参数的名称后都可以有一个可选的类型说明符。因此,对于像这样的函数:typing
您可以通过以下方式注释其类型:
PEP 484
随之而来的类型提示的引入表示该参数可以采用[需要形式化表示类型的方式];这是
PEP 3107
模块的来源。PEP 3107
模块包含一组不错的抽象类型(通常是类型理论mumbo-jumbo),供您指定除标准内置组件(如def foo(a, b): pass
,def foo(a: int, b: str) -> None: pass
等)之外的其他类型。例如,
typing
typing
类型或int
的“类型”,即它可以是字符串。 因此,简而言之,他们使用定义的符号,并引入类型提示来记录参数的类型。这意味着如果您有一个函数,该函数的参数为整数列表:
str
其文档应如下所示:
Optional[str]
来自打字模块中的符号。
更多示例:一些定义了此特定符号并进一步说明的示例可以在
str
(激发None
的静态检查器)中找到。def func(param1)
中包含可能需要在其代码中记录的常见情况:
param1 (List[int]): The first parameter containing a list of ints
其他,例如List[int]
,而通用符号描述为List[int]
。