return tuple from C to python (extending python)

Kiran Kiran.Karra at gmail.com
Tue Oct 24 18:24:54 EDT 2006


Hi all, I want to make python call some C functions, process them and
return them.

Ok, I got all the wrapper functions and everything setup right.  Here
is my problem.  What I need to do is to return a tuple from C to
python.

To go about doing this, I first create a tuple object in C doing the
following:

PyObject* toRet;
toRet = PyTuple_New(num_addr);

then, in a for loop, i assign values to the tuple as follows:

for ( i = 0; i < num_addr; i++ )
    {
        printf("%d\n", dat[i]);
        PyTuple_SET_ITEM(toRet, i, (PyObject*)dat[i] );
    }
(dat is declared as follows: unsigned int* dat; )

then, i say return toRet at the end of my C function.

when I try to print the tuple in python, it says the memory address
0x.... could not be written, and I can see a part of the tuple
printout, which is as follows:
( <nil>,
then i get my error.

can someone please help me with this?

thanks a lot!
-- Kiran




More information about the Python-list mailing list