1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
#include <Python.h>
#include "structmember.h"
int main(int argc, char *argv[])
{
PyObject *mod, *mdict, *pyclass, *pyinstance, *result, *mylist;
int i;
/* init py env */
Py_Initialize();
PyRun_SimpleString("import sys; sys.path.insert(0, '.')");
/* import module */
mod = PyImport_ImportModule("testmodule");
/* get module __dict__ */
mdict = PyModule_GetDict(mod);
/* form __dict__ get class */
pyclass = PyDict_GetItemString(mdict, "Toto");
/* make class instance */
pyinstance = PyInstance_New(pyclass, NULL, NULL);
/* create and populate list */
mylist = PyList_New(0);
for(i=0; i<10; i++)
{
PyList_Append(mylist, PyInt_FromLong((long)i));
}
/* use method setList() with argument mylist */
PyObject_CallMethod(pyinstance, "setList", "O", mylist);
/* print list */
result = PyObject_CallMethod(pyinstance, "printList", NULL);
Py_XDECREF(result);
/* finally release references */
Py_XDECREF(pyinstance);
Py_XDECREF(pyclass);
Py_XDECREF(mdict);
Py_XDECREF(mod);
Py_Finalize();
return 0;
} |
Partager