web-dev-qa-db-ja.com

Sphinxのautodocによって生成された関数をどのように相互参照しますか?

Sphinxautodoc機能を使用して、Pythonライブラリのドキュメント文字列に基づいてドキュメントを生成しています。

相互参照の構文は次のとおりです here

ドキュメントの他の領域からセクションを参照できるようにするには、セクションの前にラベルを付ける必要があります。

私が持っているのは、私のクラスの1つに対する.rst(ReStructeredText)ファイルです。それは使用しています

.. autoclass:: classname
    :members:

クラスのドキュメントを生成します。

私の質問は、ドキュメントの別の.rstドキュメントからクラスの自動生成されたメソッドをどのように参照するのですか?メソッドのdocstring内にラベルを配置しようとすると、Sphinxは不平を言います。メソッドの見出しの前にラベルを配置しようとすると、Sphinxはそれを認識しません。

これを行う簡単な方法はありますか、またはクラスファイルにメソッド名を明示的に記述し、その前にラベルを付ける必要がありますか?

これは、[Pythonのドキュメント 2 内の参照の例です。必要なことをしています(autodoc機能が使用されていると思いますが、確かではありません)。

43
Matthew Stamy

ラベルを追加する必要はありません。 Pythonクラス、メソッド、またはその他の文書化されたオブジェクトを参照するには、 Pythonドメイン によって提供されるマークアップを使用します。

たとえば、以下はmymethodメソッドへの相互参照を定義しています。

:py:meth:`mymodule.MyClass.mymethod`

または、さらに簡単です(Pythonドメインがデフォルトであるため):

:meth:`mymodule.MyClass.mymethod`

TextWrapper.wrap 質問のリンク先に、この種類の相互参照が2つ含まれています([ソースの表示]をクリックして、reSTマークアップを表示します)。

58
mzjn