Возвращая кортеж из множества объектов в Python C API
-
29-09-2019 - |
Вопрос
Я пишу родную функцию, которая вернет несколько объектов 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: плохой формат char перешел в py_buildvalue
Как это можно сделать правильно?
РЕДАКТИРОВАТЬ: Следующие работы
PyObject *rslt = PyTuple_New(3);
PyTuple_SetItem(rslt, 0, V);
PyTuple_SetItem(rslt, 1, E);
PyTuple_SetItem(rslt, 2, F);
return rslt;
Тем не менее, есть ли не более короткий способ сделать это?
Решение
Я думаю, что он хочет в верхнем регистре? "OOO"
, нет "ooo"
.
Другие советы
Использовать Кифон.
return V, E, F
Не связан с StackOverflow