在哪里可以找到有关带有狮身人面像-doc的拿破仑扩展的Google样式文档字符串中支持的新语法的更多信息?

问题描述 投票:5回答:2

版本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样式文档字符串中支持的新语法的更多信息?

python python-sphinx sphinx-napoleon
2个回答
6
投票

以tl; dr方式:

查看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]

Optional[str]来自打字模块中的符号。


更多示例:

一些定义了此特定符号并进一步说明的示例可以在str(激发None的静态检查器)中找到。 def func(param1) 中包含可能需要在其代码中记录的常见情况:

param1 (List[int]): The first parameter containing a list of ints

其他,例如List[int],而通用符号描述为List[int]

1
投票
据我了解,documentation of mypy语法并非特定于sphinx-doc。来自mypy模块的类型提示:PEP 484
© www.soinside.com 2019 - 2024. All rights reserved.