如何在Python中导入C++类?

2 投票
4 回答
5563 浏览
提问于 2025-04-15 16:06

那么,假设我有一个这样的C语言函数:

PyObject* Foo(PyObject* pSelf, PyObject* pArgs)
{
    MessageBox(NULL, "Foo was called!", "Info", MB_OK);
    return PyInt_FromLong(0);
}

然后,我需要做这个:

static PyMethodDef Methods[] = 
{
    {"Foo", Foo, METH_NOARGS, "Dummy function"},
    {NULL, NULL, 0, NULL}
};
Py_InitModule("bar", Methods);

接着,我执行我的Python脚本……但是C语言的函数有点麻烦,因为它是C++,而且我几乎所有东西都用类来处理。

所以,有没有办法把类中的成员函数导入到我的Python脚本里呢?

哦,对了,我的Python脚本大概长这样:

import bar
from bar import *
Foo()

4 个回答

1

去看看这个 boost python 的页面。然后搜索一下“free function”。

2

SWIG 也能很好地解决这个问题。

5

boost.python 让你可以非常有效地做到这一点。

撰写回答