python如何从C调用对象的方法?
可以使用 PyObject_CallMethod()
函数来调用某个对象的任意方法。 形参为该对象、要调用的方法名、类似 Py_BuildValue()
所用的格式字符串以及要传给方法的参数值:
PyObject*PyObject_CallMethod(PyObject*object,constchar*method_name,
constchar*arg_format,...);
这适用于任何具有方法的对象 —— 不论是内置方法还是用户自定义方法。 你需要负责对返回值进行最终的 Py_DECREF()
处理。
例如调用某个文件对象的 "seek" 方法并传入参数 10, 0 (假定文件对象的指针为 "f"):
res=PyObject_CallMethod(f,"seek","(ii)",10,0);if(res==NULL){
...anexceptionoccurred...
}
else{
Py_DECREF(res);
}
请注意由于 PyObject_CallObject()
总是 接受一个元组作为参数列表,要调用不带参数的函数,则传入格式为 "()",要调用只带一个参数的函数,则应将参数包含于圆括号中,例如 "(i)"。
以上是 python如何从C调用对象的方法? 的全部内容, 来源链接: utcz.com/z/520560.html