我们可以将python方法的引用作为参数传递给C吗?这个方法是一个回调方法,将在C代码执行后执行。
问问题
68 次
1 回答
1
在 Python C-API 中,Python 对象只是简单的PyObject
引用。PyObject
可以使用PyObject_Call调用引用(如果您想有更多描述性错误,可以先调用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)
于 2013-05-20T08:06:45.487 回答