Returning a tuple of multipe objects in Python C API

Posted by celil on Stack Overflow See other posts from Stack Overflow or by celil
Published on 2010-08-16T23:25:49Z Indexed on 2010/12/30 10:54 UTC
Read the original article Hit count: 532

Filed under:
|
|
|

I am writing a native function that will return multiple Python objects

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

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

This compiles fine, however, when I call it from a Python program, I get an error:

SystemError: bad format char passed to Py_BuildValue

How can this be done correctly?

EDIT: The following works

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

However, isn't there a shorter way to do this?

© Stack Overflow or respective owner

Related posts about python

Related posts about return