Pythonの大きな点の1つは、メソッドや関数にイントロスペクションを持つ能力です。pygtk3のイントロスペクションは可能ですか?
In [1]: math.log?
Type: builtin_function_or_method
Base Class: <type 'builtin_function_or_method'>
String Form: <built-in function log>
Namespace: Interactive
Docstring:
log(x[, base])
Return the logarithm of x to the given base.
If the base not specified, returns the natural logarithm (base e) of x.
そしてx
と、必要に応じてbase
は、この関数のパラメータであることを参照してください。例として、あなたは(ipythonで)これを実行することができますmath.log
の関数のシグネチャを取得します。
新しいgtk3とautomaticall generated pygobject bindingsでは、すべての例で、すべてのgtkメソッドのパラメータとして(*args, **kwargs)
を取得しました。
例:Label.set_text which requires a string:
NOWIn [1]: from gi.repository import Gtk
In [2]: mylabel = Gtk.Label("hello")
In [3]: mylabel.set_text?
Type: instancemethod
Base Class: <type 'instancemethod'>
String Form: <bound method Label.set_text of <Label object at 0x275b230 (GtkLabel at 0x28cd040)>>
Namespace: Interactive
File: /usr/lib/python2.7/dist-packages/gi/types.py
Definition: L.set_text(*args, **kwargs)
Docstring:
<no docstring>
質問:この(Pythonバインディングのための方法のイントロスペクションの損失は)もう一度(ドキュメント)の努力を変更します何かがpygobjectsに入ったりでいるありますpygobjectsの仕組みのためにここに滞在しているこの何か?
大きな質問です。私はpygobjectを扱っているメーリングリストについてもそれを尋ねることをお勧めします。 – ptomato
自動バインディング世代のポイントは、gtk-docによって生成された同じC言語のドキュメントがすべての言語で動作することです。ですから、Pythonの開発者は、バインディングの場合と同じようにPython用のドキュメントを生成することになります。 – erick2red