Возвращая кортеж из множества объектов в Python C API

StackOverflow https://stackoverflow.com/questions/3498210

Вопрос

Я пишу родную функцию, которая вернет несколько объектов 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
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top