11

__init__おそらくばかげた質問です: C 拡張機能を作成するときなど、特別な関数に docstring を指定するにはどうすればよいでしょうか? 通常のメソッドの場合、メソッド テーブルにはドキュメント文字列が用意されています。help(myclass) を試すと、次の自動生成されたドキュメントが表示されます。

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

しかし、これは私がオーバーライドしたいものです。

4

1 に答える 1

1

最も一般的なのは、さまざまな関数の定義をtp_docそのままにしておくことだと思います。その後、それが言うように、オブジェクトのドキュメントを見ることができます。これは、標準ライブラリ全体で起こっていることです。

を呼び出すとによってラップされ、 aの docstringは読み取り専用であるため__doc__、さまざまなスロット (tp_initなど)に書き込むオプションは実際にはありません。wrapper_descriptorPyType_Readywrapper_descriptor

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

于 2012-08-19T04:58:12.097 に答える