我想知道是否有任何方法可以将 C++ 类公开给 Python,但无需构建中间共享库。
这是我想要的场景。例如,我有以下 C++ 类:
class toto
{
public:
toto(int iValue1_, int iValue2_): iValue1(iValue1_), iValue2(iValue2_) {}
int Addition(void) const {if (!this) return 0; return iValue1 + iValue2;}
private:
int iValue1;
int iValue2;
};
我想以某种方式将此类(或其实例)转换为 PyObject*,以便将其作为参数(args)发送到例如 PyObject_CallObject:
PyObject* PyObject_CallObject(PyObject* wrapperFunction, PyObject* args)
另一方面,在我的 python 端,我将有一个 wrapperFunction,它将我的 C++ 类(或其实例)上的指针作为参数,并调用它的方法或使用它的属性:
def wrapper_function(cPlusPlusClass):
instance = cPlusPlusClass(4, 5)
result = instance.Addition()
如您所见,我真的不需要/不想拥有一个单独的共享库或通过 boost python 构建一个模块。我所需要的只是找到一种将 C++ 代码转换为 PyObject 并将其发送到 python 的方法。我找不到通过 C python 库、boost 或 SWIG 来做到这一点的方法。
你有什么主意吗?谢谢你的帮助。