質問

電話するとき

help(Mod.Cls.f)

(ModはC拡張モジュールです)、出力が得られます

Help on method_descriptor:

f(...)
    doc_string

ヘルプ出力が次の形式になるようにするために必要なこと

Help on method f in module Mod:

f(x, y, z)
    doc_string

たとえばrandom.Random.shuffleのようなものですか?

私のPyMethodDefエントリは現在:

{ "f", f, METH_VARARGS, "doc_string" }
役に立ちましたか?

解決

できません。 'pydoc'および 'help()'が使用する検査モジュールには、C関数の正確なシグネチャが何であるかを把握する方法がありません。できることは、組み込み関数が何をするかです。docstringの最初の行に署名を含めます。

>>> help(range)
Help on built-in function range in module __builtin__:

range(...)
    range([start,] stop[, step]) -> list of integers

...

random.shuffleのdocstringが「正しい」ように見える理由それはC関数ではないということです。 Pythonで書かれた関数です。

他のヒント

トーマスの答えはもちろん正しい。

単に、多くのC拡張モジュールにPythonの「ラッパー」があることを追加します。標準関数の署名やその他の動的言語機能(記述子プロトコルなど)をサポートできるように、それらを囲みます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top