我将 Python 嵌入到我正在制作的 C++ 库中。我希望用户能够以函数指针的形式传递 C 函数,PyObject* (fpFunc*)(PyObject*,PyObject*);
以便我可以在嵌入式 Python 中使用这些函数。
所以我有一个函数指针,我知道可以使用PyMethodDef
struct 将此函数作为模块的方法并将其传递给Py_InitModule("module", ModMethods);
,从而获得一个PyObject* module
我可以轻松从中获取函数的函数。
但是,我真正欣赏的是能够即时创建此功能,而不必每次都重新创建另一个模块。
我已经查看了 Python 文档和一些 Python 标头,以考虑一种没有真正成功的 hacky 方式......但我想知道是否有更传统的方式来做到这一点。
据我了解,每个函数都属于一个模块,甚至__builtin__
,所以我想我至少需要一个模块。
关于如何实现这一目标的任何想法?