所以..让我说我有这个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()
答案 0 :(得分:5)
boost.python可让您非常有效地完成这项工作。
答案 1 :(得分:2)
SWIG也会很好用。
答案 2 :(得分:1)
查看boost python页面。搜索“免费功能”。
答案 3 :(得分:0)
Cython拥有我发现的最好的C++ wrapping,尽管它比SWIG更加冗长,并且它有点心态。编写映射比使用SWIG更容易 - 因为它使用Python类型 - 但是你必须手动编写它们。它也是一个非常活跃的项目,拥有非常友好的邮件列表。它还为NumPy提供了良好的缓冲支持。