【问题标题】:Find function argument spec for introspected methods查找自省方法的函数参数规范
【发布时间】:2012-07-01 07:00:29
【问题描述】:

我正在通过 GObject 内省使用 PyGI - Python 2.7 和 GTK+ 3 开发应用程序。

如何找到使用自省调用的函数的参数和函数的参数类型?

具体来说,Gio.File.replace_contents_async()。我发现 C 定义与 PyGI (gio C docs) 中的定义不匹配。我尝试过使用交互式 shell 并使用 help(Gio.File.replace_conents_async) 和 inspect.getargspec(...),但他们只是声明它需要 vargs。现在,我一直在放置虚拟参数,以查看打印了哪些警告或异常,以查看它需要哪些参数。

Gtk 文档并不完整,但我发现足以解决一些与它相关的问题。 我使用 Ubuntu 的“快速”工具启动了这个应用程序,没想到使用 PyGI 进行开发会如此困难……缺乏文档,没有可查看的资源……

【问题讨论】:

  • 对于其中一些文档记录不佳的包装器,最好的办法是检查包装器源代码。

标签: python introspection pygobject


【解决方案1】:

较新版本的 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

【讨论】:

    猜你喜欢
    • 2011-02-10
    • 2019-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-24
    • 1970-01-01
    • 2016-09-19
    • 2013-09-18
    相关资源
    最近更新 更多