Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说python如何从C调用对象的方法?「建议收藏」,希望能够帮助你!!!。
可以使用 PyObject_CallMethod()
函数来调用某个对象的任意方法。 形参为该对象、要调用的方法名、类似 Py_BuildValue()
所用的格式字符串以及要传给方法的参数值:
PyObject *
PyObject_CallMethod(PyObject *object, const char *method_name,
const char *arg_format, ...);
这适用于任何具有方法的对象 —— 不论是内置方法还是用户自定义方法。 你需要负责对返回值进行最终的 Py_DECREF()
处理。
例如调用某个文件对象的 "seek" 方法并传入参数 10, 0 (假定文件对象的指针为 "f"):
res = PyObject_CallMethod(f, "seek", "(ii)", 10, 0);
if (res == NULL) {
... an exception occurred ...
}
else {
Py_DECREF(res);
}
请注意由于 PyObject_CallObject()
总是 接受一个元组作为参数列表,要调用不带参数的函数,则传入格式为 "()",要调用只带一个参数的函数,则应将参数包含于圆括号中,例如 "(i)"。
来源:PY学习网:原文地址:https://www.py.cn/article.html