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