python如何从C调用对象的方法?

python

可以使用 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

回到顶部