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

2024-05-08 01:38:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写一个本机函数,它将返回多个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;

然而,有没有一个更短的方法来做到这一点呢?


Tags: 对象函数py程序newreturn错误pyobject