从C中将函数指针传入python
C code:
void func(int a, int b){printf("%d%d", a, b);}
python code
def xxx(fp):
fp(1,2)
想通过
Py_BuildValue 将函数指针传入python代码, 试过Py_BuildValue("(O&)",func);
还是不行.
请问大牛 应该怎么弄?
[解决办法]
没弄过,应该得封装成一个对象返回吧
[解决办法]
1. 一般来说你不能传一个普通的C函数。你自己的C函数要符合类似下面的接口:
static PyObject*
func(PyObject *self, PyObject *args)
{
if(!PyArg_ParseTuple(args, ":numargs"))
return NULL;
return Py_BuildValue("i", numargs);
}
2. 如果你想重用现有的C代码,可以用上面的办法做一个简单的wrapper,或者使用ctypes。
[解决办法]