7

私がこのようなクラスを持っているとしましょう:

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

    Extended documentation for my class.
    """

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

autodocこのクラスを次のように文書化するために拡張機能を使用してSphinxを使用する場合:

.. automodule:: mymodule
   :members:

...コンストラクターの署名はとして表示されMyClass(*args)ます。私はむしろこれを上書きして、たとえば、として文書化したいと思いますMyClass(first, second, third)

これが関数の場合、docstringの最初の行の署名をオーバーライドできます。しかし、そのトリックはクラスdocstringでは機能しないようです。では、コンストラクターの署名をオーバーライドするにはどうすればよいですか?

4

1 に答える 1

11

私はあなたにとって最良の選択肢はこのようなことをすることだと思います:

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

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

MyClassパラメータが上書きされ、の他のメンバーmymoduleが自動文書化されます。2回含まれるため、MyClass使用を除外する必要があります。:exclude-members:現時点で最も簡単な解決策だと思います。

于 2012-12-11T11:13:30.243 に答える