Pregunta

Estoy escribiendo una función nativa que devolverá múltiples objetos Python

PyObject *V = PyList_New(0);
PyObject *E = PyList_New(0);
PyObject *F = PyList_New(0);

return Py_BuildValue("ooo", V, E, F);

Esta bien compila, sin embargo, cuando la llamo desde un programa en Python, me sale un error:

  

SystemError: mala formato de carbón pasó a Py_BuildValue

¿Cómo se puede hacer esto correctamente?

EDIT: Las siguientes obras

PyObject *rslt = PyTuple_New(3);
PyTuple_SetItem(rslt, 0, V);
PyTuple_SetItem(rslt, 1, E);
PyTuple_SetItem(rslt, 2, F);
return rslt;

Sin embargo, no hay un camino más corto para hacer esto?

¿Fue útil?

Solución

Creo que quiere mayúscula O? "OOO", no "ooo".

Otros consejos

Cython .

return V, E, F
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top