0

バージョン 3.0.1 の epydoc を使用します。

私はこの簡単なことを試しました:

def SetNetwork(self, PyLabNetwork net):
    """
    Set the net !!!
    @param self: How long they should think.
    @type self: C{int} or L{PyLabNetwork}
    @param net: How long they should think.
    @type net: C{int} or L{PyLabNetwork}
    """
    self.network = net

これを実行しました:

epydoc -v -o ./html --name epydoc --css white --docformat epytext cyelp

しかし、epydoc によって作成された html では、メソッド プロトタイプは、記述されたパラメーターの代わりに 3 つの連続したドットで表示されます。

SetNetwork(...) << ??? NOTHING INSIDE ???

Set the net !!!

Parameters:

        self (int or PyLabNetwork) - How long they should think.
        net (int or PyLabNetwork) - How long they should think.

何か案が ?どうもありがとう

編集:申し訳ありませんが、完全に機能する簡単なスクリプトをテストしました。Cython でコンパイルされた共有オブジェクト (.so) であるため、前のケースは機能しませんでした。それは違いを生みます。ソースも表示できません。関数プロトタイプの解析に関して、epydoc は docstring のみに取り組んでいると思っていましたが、それよりも少し複雑なようです...

EDIT2:さらに、「embedsignature」cythonコンパイルディレクティブを「True」に渡してコンパイルすると、何かが得られます-これはまだ間違っていますが、現象をよりよく理解しています:

SetNetwork(...)


PyLabNode.SetNetwork(self, PyLabNetwork net)

Set the net !!!

Parameters:

        self (int or PyLabNetwork) - How long they should think.
        net (int or PyLabNetwork) - How long they should think.

別名 : epydoc は、cython 化された署名が埋め込まれている方法を理解していません...

もっと具体的な説明があれば、私はまだあなたの男です. ありがとう

4

1 に答える 1

0

とった。

次のように、epydoc が理解できない署名を送信していた cython コンパイル ディレクティブを削除しました。

PyLabNode.SetNetwork(self, PyLabNetwork net)

これには 2 つの欠点があります。クラス プレフィックスと型付きパラメータのドット表記です。

そして、ドキュメント文字列の最初の行として整形式の Python に置き換えて、次のようにします。

def SetNetwork(self, PyLabNetwork net):
    """
    SetNetwork(self, net)
    Set the net !!!
    @param self: Handler to this.
    @type self: L{PyLabNode}
    @param net: The network this node belongs to.
    @type net: L{PyLabNetwork}
    """
    self.network = net

それはトリックをしました。これが一部の人々に役立つことを願っています。

于 2013-01-31T03:05:41.757 に答える