Zurückgeben eines Tupels von mehreren Objekten in Python C API
-
29-09-2019 - |
Frage
Ich schreibe eine native Funktion, die mehr Python-Objekte zurück
PyObject *V = PyList_New(0);
PyObject *E = PyList_New(0);
PyObject *F = PyList_New(0);
return Py_BuildValue("ooo", V, E, F);
Dieses compiliert in Ordnung, aber wenn ich es aus einem Python-Programm aufrufen, ich erhalte eine Fehlermeldung:
Systemerror: falsches Format char Py_BuildValue geben
Wie kann dies richtig getan werden?
EDIT: Die folgenden Werke
PyObject *rslt = PyTuple_New(3);
PyTuple_SetItem(rslt, 0, V);
PyTuple_SetItem(rslt, 1, E);
PyTuple_SetItem(rslt, 2, F);
return rslt;
ist jedoch nicht, dass es ein kürzerer Weg, dies zu tun?
Lösung
Ich denke, es ist in Großbuchstaben O will? "OOO"
, nicht "ooo"
.
Andere Tipps
Verwenden Sie Cython .
return V, E, F
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow