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

问题描述 投票:6回答:1

假设我有这样的课程:

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

    Extended documentation for my class.
    """

    def __init__(self, *args):
        self.values = np.asarray(args)

如果我使用Sphinx和autodoc扩展名来记录此类,则如下:

.. automodule:: mymodule
   :members:

...构造函数签名显示为MyClass(*args)。我宁愿重写它并将其记录为MyClass(first, second, third)

如果这是一个函数,我可以覆盖文档字符串第一行中的签名。但是该技巧似乎不适用于类文档字符串。那么如何覆盖构造函数签名?

python python-sphinx autodoc
1个回答
10
投票

我认为最适合您的选择是执行以下操作:

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

    .. autoclass:: MyClass(first, second, third)

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

© www.soinside.com 2019 - 2024. All rights reserved.