【发布时间】:2013-05-20 06:37:46
【问题描述】:
我们能否将python方法的引用作为参数传递给C。该方法是一个回调方法,将在C代码执行后执行。
【问题讨论】:
标签: python python-c-api
我们能否将python方法的引用作为参数传递给C。该方法是一个回调方法,将在C代码执行后执行。
【问题讨论】:
标签: python python-c-api
在 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)
【讨论】: