2012-08-11 4 views
9

おそらく愚かな質問 Cの拡張機能を書くときに、__init__のような特別な関数のためにdocstringを指定する方法はありますか? 通常のメソッドの場合、メソッドテーブルにはdocstringが用意されています。ヘルプ(myclass)を試すと、次の自動生成されたドキュメントが表示されます。Python C内で__init__のdocstringを指定する方法

__init__(...) 
     x.__init__(...) initializes x; see help(type(x)) for signature 

これは私が上書きしたいものです。

答えて

1

私は、最も一般的なことは、さまざまな機能の定義をtp_docに貼り付け、それをそのまま残すことだと思います。あなたはそれが言うようにして、あなたのオブジェクトのドキュメントを見て行うことができます。これは、標準ライブラリ全体で起こることです。

あなたは本当に彼らはあなたがPyType_Readyを呼び出すときwrapper_descriptorによって包まれている、とwrapper_descriptor上のドキュメント文字列が読み取り専用であるため、様々なスロット(tp_init、など)に__doc__を書くのいずれかのオプションがありません。

スロットをスキップしてMemberDefsにメソッド(例:__init__)を追加することは可能ですが、これを試みたことはありません。

+1

そのように見えます。 PyMethoDef配列に\ _ \ _ init \ _ \ _を入れてみました。それを置くことに害はありませんが、通訳者は私が提供した文書の文字列を無視します。 – subhacom

関連する問題