【发布时间】:2011-07-08 14:47:09
【问题描述】:
我将 Python 嵌入到我正在制作的 C++ 库中。我希望用户能够以函数指针PyObject* (fpFunc*)(PyObject*,PyObject*); 的形式传递 C 函数,以便我可以在嵌入式 Python 中使用这些函数。
所以我有一个函数指针,我知道可以使用PyMethodDef 结构将此函数作为模块的方法并将其传递给Py_InitModule("module", ModMethods);,从而获得一个PyObject* module,我可以轻松获取函数来自。
但是,我真正感激的是能够即时创建此函数,而不必每次都重新创建另一个模块。
我查看了 Python 文档和一些 Python 标头,以考虑一种没有真正成功的 hacky 方式......但我想知道是否有更传统的方式来做到这一点。
据我了解,每个函数都属于一个模块,即使是__builtin__,所以我想我至少需要一个模块。
知道如何实现这一目标吗?
【问题讨论】:
-
我不清楚你的意思。为什么要使用函数指针?谁在设置它?
-
我正在制作一个嵌入 Python 的 C++ 库。我正在使用函数指针,因为它很方便传递。 (编辑了我的帖子)
标签: python c python-c-api