0

pywebkit 通过自省从 python 调用 webkit。被调用函数的原型是在运行时绑定的。开发人员的一个小问题是您不会在源代码中看到原型。你如何找到函数原型?特别是“add_event_listener”?

这段 python 代码来自 pyjs.org pyjs/runners/giwebkit.py:

702     def addEventListener(self, element, event_name, cb):
703         listener = Callback(element, cb, False)
704         element.add_event_listener(event_name, listener, False)

在 fedora 20 上运行时会出现以下错误:

File "/.../pyjs/runners/giwebkit.py", line 704, in addEventListener
    element.add_event_listener(event_name, listener, False)
TypeError: add_event_listener() takes exactly 5 arguments (4 given)

如何找出传递给函数“element.add_event_listener()”的参数及其类型是什么?我可以插入一段python代码来打印出来吗?

我搜索找到 add_event_listener() 的原型,但无法轻松找到答案。所以我在想是否可以从调用代码中做点什么。

谢谢。

编辑:更改原始标题“python 打印函数原型和/或参数,专门用于 webkitgtk3 中的 add_event_listener”以更好地反映实际问题。

4

1 回答 1

0

这是 HMR 在评论中建议的。它涉及两个步骤:第一步,获取webkit api:

http://webkitgtk.org/reference/webkitdomgtk/stable/WebKitDOMEventTarget.html#webkit-dom-event-target-add-event-listener

然后手动将该接口映射到 python 接口(我认为通过从参数列表的开头删除 *target )。

于 2014-06-02T15:49:23.277 回答