如何使用autodoc覆盖Sphinx中的构造函数参数?

det*_*tly 6 python python-sphinx

假设我有这样一个类:

class MyClass(object):
    """ Summary docs for my class.

    Extended documentation for my class.
    """

    def __init__(self, *args):
        self.values = np.asarray(args)
Run Code Online (Sandbox Code Playgroud)

如果我使用带有autodoc扩展名的Sphinx 来记录这个类,如下所示:

.. automodule:: mymodule
   :members:
Run Code Online (Sandbox Code Playgroud)

...构造函数签名显示为MyClass(*args).我宁愿覆盖它并将其记录为,比方说MyClass(first, second, third).

如果这是一个函数,我可以覆盖docstring第一行中的签名.但是这个技巧似乎不适用于类docstring.那么如何覆盖构造函数签名呢?

prm*_*mtl 10

我认为最好的选择是做这样的事情:

.. automodule:: mymodule
    :members:
    :exclude-members: MyClass

    .. autoclass:: MyClass(first, second, third)
Run Code Online (Sandbox Code Playgroud)

MyClass将覆盖params,其他成员mymodule将被自动记录.您需要排除MyClass使用,:exclude-members:因为它将被包含两次.我认为这是目前最简单的解决方案.