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

dzh*_*lil 3 python tuples return 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);
Run Code Online (Sandbox Code Playgroud)

这编译很好,但是,当我从Python程序调用它时,我收到一个错误:

SystemError:传递给Py_BuildValue的格式错误

怎么能正确完成?

编辑:以下工作

PyObject *rslt = PyTuple_New(3);
PyTuple_SetItem(rslt, 0, V);
PyTuple_SetItem(rslt, 1, E);
PyTuple_SetItem(rslt, 2, F);
return rslt;
Run Code Online (Sandbox Code Playgroud)

但是,有没有更短的方法来做到这一点?

Ned*_*der 7

我认为它想要大写的O? "OOO"不是"ooo".