1

PyGI - Python 2.7 および GObject イントロスペクションによる GTK+ 3 を使用してアプリを開発しています。

関数の引数と、イントロスペクションを使用して呼び出される関数の引数の型を見つけるにはどうすればよいですか?

具体的には、Gio.File.replace_contents_async(). C の定義が PyGI ( gio C docs )のものと一致しないことがわかりました。対話型シェルを使用して、help(Gio.File.replace_conents_async) と inspect.getargspec(...) を使用しようとしましたが、vargs が必要であると述べているだけです。今のところ、必要な引数を確認するために、どの警告または例外が出力されるかを確認するために仮引数を入れ続けています。

Gtk のドキュメントは完全ではありませんが、それに関連するいくつかの問題を解決するのに十分なものが見つかりました。私はこのアプリを Ubuntu の「迅速な」ツールを使用して開始しましたが、PyGI での開発がそれほど難しいとは思っていませんでした...ドキュメントの欠如、参照するソースがありません...

4

1 に答える 1

0

PyGI の新しいバージョン (>= 3.10) には、引数の名前と型を含むドキュメント文字列があります。

>>> from gi.repository import Gio
>>> Gio.File.replace_contents_async.__doc__
'replace_contents_async(self, contents:list, etag:str=None, make_backup:bool,
flags:Gio.FileCreateFlags, cancellable:Gio.Cancellable=None,
callback:Gio.AsyncReadyCallback=None, user_data=None)'

help(Gio.File.replace_conents_async) を使用しても、これは表示されないようです。

ここで利用可能なリポジトリに関する非常に優れた Python 固有のドキュメントもあります: http://lazka.github.io/pgi-docs/#Gio-2.0/interfaces/File.html#Gio.File.replace_contents_async

于 2014-05-19T07:58:40.543 に答える