1

旧 PyGTK 2.8 绑定的 Wiki 页面指出,一个用 Python 正确编写的对象

也应该可以很容易地从 C 代码甚至其他语言绑定中使用。

但是 PyGTK 已经过时了,应该用 PyGObject 代替。是否也可以将语言与新的基于内省的绑定混合和匹配?例如,我可以在 Vala 中编写一个 gobject 类,用 Python 扩展它并在 Java 中使用结果吗?

4

2 回答 2

1

我编写了一个基于 C 的插件库,基本上可以做到这一点。它确实使用了 GObject Introspection,理论上这是可能的。现在有 C/C++、Python、Lua 和 SeedJS 都在同一个内存空间中一起玩,但我没有尝试在其他语言中继承或调用 C 以外的任何东西。

无论如何,如果您愿意,请随时修补。 插件

于 2014-01-26T00:46:31.900 回答
0

理论上,是的,应该是可能的。在实践中,不,不是真的。像这样混合多个运行时非常困难,而且非常浪费资源。如果您希望您的代码可用于多种语言,您几乎需要用 C 或 Vala 编写它。或 C++,只要您公开 C API。

您真正会得到的最接近的东西是libpeas,您可以在其中创建定义明确的扩展点,然后可以自由地以您选择的任何语言实现这些扩展。

于 2013-09-03T22:13:14.713 回答