0

sphinxautodoc拡張機能を使用してドキュメントを作成する場合、(クラス自体ではなく) クラス インスタンスを関数のようにドキュメント化するにはどうすればよいですか? クラスには__call__メソッドが定義されています。

4

2 に答える 2

1

Sphinx 拡張機能を使用して問題を解決することができます。私にとっては、以下で十分でした:

  1. conf.py:

    1. に適切なパスを追加sys.pathしますconf.py
    2. リストsphinx.ext.autodoc内の新しいモジュール名に置き換えますextensions
  2. 新しいモジュールで:

    1. 輸入sphinx.ext.autodoc
    2. のサブクラスを作成する.autodoc.FunctionDocumenter
    3. 呼び出してから呼び出すsetup(app)関数を作成する.autodoc.setup()app.add_autodocumenter(SubclassName)

これは関数のドキュメンタを置き換えるため、それらに役立つようにする必要があることに注意してください。一意のobjtype文字列を値としてクラス定数を定義することで問題を回避することは可能ですが、これにはそれ以上の作業が必要になります。通常の機能を気にする方が簡単です。

誰かが興味を持っているなら、コードはここにあります。

于 2013-03-17T16:44:43.507 に答える
0

具体的にはよくわかりませんautodocが、これを試すことができます:

class MyClass(object):
    ...
    def __call__(self):
        ...

c = MyClass()
"""
this is a function-like object.
"""

c2 = MyClass()
"""
this is another function-like object.
"""

またはこれ:

#: this is a function-like object.
c = MyClass()
于 2013-03-16T20:52:30.993 に答える