是否可以在Sphinx中隐藏Python函数参数?

2022-04-21 00:00:00 python python-sphinx numpydoc

问题描述

假设我有以下Numpydoc style中记录的函数,文档是通过Sphinxautofunction directive自动生成的:

def foo(x, y, _hidden_argument=None):
    """
    Foo a bar.

    Parameters
    ----------
    x: str
        The first argument to foo.
    y: str
        The second argument to foo.

    Returns
    -------
    The barred foo.

    """
    if _hidden_argument:
        _end_users_shouldnt_call_this_function(x, y)
    return x + y

我不想将隐藏参数宣传为我的公共API的一部分,但它显示在我的自动生成的文档中。有没有办法告诉Sphinx忽略函数的特定参数,或者(更好的)让它自动忽略带有前导下划线的参数?


解决方案

我认为在Sphinx中没有这样的选项。无需侵入代码即可实现此目的的一种可能方法是使用自定义签名。

在这种情况下,您需要如下内容:

.. autofunction:: some_module.foo(x, y)

这将覆盖函数的参数列表,并在文档中隐藏不需要的参数。

相关文章