PyObject_CallMethod怎么用
时间: 2023-10-06 11:06:11 浏览: 189
C++调用Python3函数与类的实例代码
`PyObject_CallMethod`是Python C API中的一个函数,用于调用一个Python对象的方法。其函数原型如下:
```c
PyObject* PyObject_CallMethod(PyObject *o, char *method, char *format, ...)
```
参数说明:
- `o`:要调用方法的Python对象。
- `method`:要调用的方法的名称。
- `format`:方法的参数类型,可以使用Python中的格式化字符串,例如,`"sii"`表示方法接受三个参数,分别是字符串、整数、整数。
- `...`:方法的实际参数列表。
返回值:
- 成功:返回方法的返回值。
- 失败:返回`NULL`,并设置异常信息。
示例代码:
```c
#include <Python.h>
int main() {
Py_Initialize();
// 创建一个列表对象
PyObject* list = PyList_New(0);
// 调用列表对象的append方法,添加一个字符串元素
PyObject_CallMethod(list, "append", "(s)", "hello");
// 调用列表对象的append方法,添加一个整数元素
PyObject_CallMethod(list, "append", "(i)", 123);
// 打印列表的内容
PyObject_Print(list, stdout, 0);
printf("\n");
Py_Finalize();
return 0;
}
```
输出结果:
```
['hello', 123]
```
阅读全文