编程语言
首页 > 编程语言> > 在Python C API中返回多元对象的元组

在Python C API中返回多元对象的元组

作者:互联网

我正在编写一个本机函数,它将返回多个Python对象

PyObject *V = PyList_New(0);
PyObject *E = PyList_New(0);
PyObject *F = PyList_New(0);

return Py_BuildValue("ooo", V, E, F);

这样编译就可以了,但是,当我从Python程序中调用它时,出现了一个错误:

SystemError: bad format char passed to Py_BuildValue

如何正确完成?

编辑:
以下作品

PyObject *rslt = PyTuple_New(3);
PyTuple_SetItem(rslt, 0, V);
PyTuple_SetItem(rslt, 1, E);
PyTuple_SetItem(rslt, 2, F);
return rslt;

但是,难道没有更短的方法吗?

解决方法:

我认为它需要大写的O? “ OOO”,而不是“ ooo”.

标签:return,tuples,python-c-api,python
来源: https://codeday.me/bug/20191105/1998400.html