在nautilus python绑定中,有一个文件“nautilus.defs”。它包含了像
(define-interface MenuProvider
(in-module "Nautilus")
(c-name "NautilusMenuProvider")
(gtype-id "NAUTILUS_TYPE_MENU_PROVIDER")
)
或者
^{pr2}$现在我可以看到这些方法的作用了(例如,最后一个意味着我可以在“FileInfo”对象上调用“get_mime_type”方法)。但我想知道:这个文件到底是什么(例如,我要在网上搜索什么才能找到更多信息)?这是Python/C绑定中常见的东西吗?格式是什么?文件记录在哪里?什么程序实际处理它?在
(到目前为止,我已经收集到它得到了transformed into a C source file,在我看来它有点像lisp。)
要为C代码创建Python绑定,只需使用Python / C API。然而,API可能有些重复和冗余,因此可以使用各种形式的自动化来创建它们。例如,您可能听说过swig。您看到的类似LISP的(Scheme)代码只是PyGTK-Codegen的配置文件,这是一个类似的自动化程序,用于创建到Python的绑定。在
回答你的“哪个程序实际处理它?”问题:
从
src
目录中的Makefile.in
开始,将.defs
文件转换为C的命令是PYGTK_CODEGEN
。要了解PYGTK_CODEGEN
是什么,请查看顶层configure.in
文件,其中包含以下行:因此,处理它的程序是一个名为代码生成.py,显然与
PyGTK
有某种联系。现在Google搜索PyGTK codegen
得到的第一个结果是{a1},上面说:“PyGTK Codegen是一个自动生成包装器的系统,用于GTK代码与Python的接口。”
并举例说明。在
至于:“格式是什么,文件记录在哪里?”。正如其他人所说,代码看起来很像简单的Scheme。我在PyGTK站点上根本找不到任何关于
codegen
的文档;这看起来像是开源中许多没有很好文档记录的黑暗角落之一。最好的办法可能是为PyGTK
下载一个最近的tarball,查看codegen.py
文件的源代码,看看文件本身是否包含足够的文档。在相关问题 更多 >
编程相关推荐