mr*****@gmail.com wrote:
>>From the C API (I'm using Python embedded), how can I get and set the
value of named variables? Right now, I'm using hacks like
PyRun_SimpleString("foobar = 12\n"), but I'd really like to access the
named objects directly.
You can use the following C functions to set/get named attributes of an
object:
PyObject_SetAttrString
PyObject_GetAttrString
If the attributes belong to the global scope of a module, then you can
use "PyImport_AddModule" to get a handle to the module object. For
example, if you wanted to get the value of an integer in the __main__
module named "foobar", you would do the following:
PyObject *m = PyImport_AddModule("__main__");
PyObject *v = PyObject_GetAttrString(m,"foobar");
int foobar = PyInt_AsLong(v);
Py_DECREF(v);
You will probably want to add some error checking in your code.
-Farshid