我正在使用Sphinx和autodoc extension为我的Python模块生成API文档。虽然我可以看到如何很好地记录特定参数,但我找不到如何记录**kwargs参数的示例。
有没有人有一个很好的例子来记录这些?
发布于 2009-07-16 13:32:54
我认为subprocess-module's docs就是一个很好的例子。提供top/parent class的所有参数的详尽列表。然后,只需参考该列表即可了解所有其他出现的**kwargs。
发布于 2015-01-01 02:25:47
在找到这个问题后,我决定了以下几点,这是有效的Sphinx,并且运行得相当好:
def some_function(first, second="two", **kwargs):
r"""Fetches and returns this thing
:param first:
The first parameter
:type first: ``int``
:param second:
The second parameter
:type second: ``str``
:param \**kwargs:
See below
:Keyword Arguments:
* *extra* (``list``) --
Extra stuff
* *supplement* (``dict``) --
Additional content
"""r"""..."""需要使其成为“原始”文档字符串,从而保持\*的完整性(以便Sphinx作为文字*而不是“emphasis”的开头拾取)。
选择的格式(带括号的项目符号列表和以m-破折号分隔的描述)只是为了匹配Sphinx提供的自动格式。
一旦您努力使“关键字参数”部分看起来像默认的“参数”部分,从一开始就滚动您自己的参数部分似乎更容易(根据其他一些答案),但作为概念证明,如果您已经在使用Sphinx,这是实现补充**kwargs良好外观的一种方法。
发布于 2015-08-28 22:22:05
Sphinx解析的Google样式文档字符串
免责声明:未经测试。
从sphinx docstring example的此裁剪中,*args和**kwargs将保留为未展开的
def module_level_function(param1, param2=None, *args, **kwargs):
"""
...
Args:
param1 (int): The first parameter.
param2 (Optional[str]): The second parameter. Defaults to None.
Second line of description should be indented.
*args: Variable length argument list.
**kwargs: Arbitrary keyword arguments.我建议使用以下紧凑的解决方案:
"""
Args:
param1 (int): The first parameter.
param2 (Optional[str]): The second parameter. Defaults to None.
Second line of description should be indented.
*param3 (int): description
*param4 (str):
...
**key1 (int): description
**key2 (int): description
...请注意,**key参数不需要Optional。
否则,您可以尝试显式列出Other Parameters下的*args和Keyword Args下的**kwargs (请参阅docstring sections):
"""
Args:
param1 (int): The first parameter.
param2 (Optional[str]): The second parameter. Defaults to None.
Second line of description should be indented.
Other Parameters:
param3 (int): description
param4 (str):
...
Keyword Args:
key1 (int): description
key2 (int): description
...https://stackoverflow.com/questions/1137161
复制相似问题