首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >记录**kwargs参数的正确方法是什么?

记录**kwargs参数的正确方法是什么?
EN

Stack Overflow用户
提问于 2009-07-16 20:18:43
回答 8查看 51.8K关注 0票数 120

我正在使用Sphinxautodoc extension为我的Python模块生成API文档。虽然我可以看到如何很好地记录特定参数,但我找不到如何记录**kwargs参数的示例。

有没有人有一个很好的例子来记录这些?

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2009-07-16 13:32:54

我认为subprocess-module's docs就是一个很好的例子。提供top/parent class的所有参数的详尽列表。然后,只需参考该列表即可了解所有其他出现的**kwargs

票数 -6
EN

Stack Overflow用户

发布于 2015-01-01 02:25:47

在找到这个问题后,我决定了以下几点,这是有效的Sphinx,并且运行得相当好:

代码语言:javascript
复制
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良好外观的一种方法。

票数 62
EN

Stack Overflow用户

发布于 2015-08-28 22:22:05

Sphinx解析的Google样式文档字符串

免责声明:未经测试。

sphinx docstring example的此裁剪中,*args**kwargs将保留为未展开的

代码语言:javascript
复制
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.

我建议使用以下紧凑的解决方案:

代码语言:javascript
复制
    """
    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):

代码语言:javascript
复制
    """
    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 
        ...
票数 35
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1137161

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档