我们可以将python方法的引用作为参数传递给C.这个方法是一个回调方法,它将在C代码执行后执行。
答案 0 :(得分:1)
在Python C-API中,Python对象只是PyObject
引用。可以使用PyObject_Call调用PyObject
引用(如果您想要有更多描述性错误,可以先调用PyCallable_Check。)
假设您使用API扩展了模块,您将获得如下方法:
bool call_method(PyObject *method)
{
PyObject *args = PyTuple_New(0);
if ( NULL == PyObject_Call(method, args, NULL) )
{
// Method call failed
return false;
}
return true;
}
然后,在Python中,您使用以下方法调用该方法:
import my_module as bla
bla.call_method(myClass.myMethod)