Is There A Python Api Function To Get Value By Its Name In C++?
I want to do something like this: Py_Initialize(); PyRun_SimpleString('d = 0.97'); float a = ? // how to get value of d by its name? Py_Finalize(); Is there a simple way to do thi
Solution 1:
PyRun_SimpleString
will not help AFAIK.
Use PyRun_String
instead of PyRun_SimpleString
which returns an object a pointer to a PyObject
. But this would not be very (simple) as mentioned by your question
Solution 2:
As said tdelaney, "d
ends up in the __main__
module". So the best solution I find is
Py_Initialize();
PyRun_SimpleString("d = 0.97");
PyObject *mainModule = PyImport_AddModule("__main__");
PyObject *var = PyObject_GetAttrString(mainModule, "d");
float a = PyFloat_AsDouble(var);
Py_Finalize();
Not as simple as I expected, but acceptable and it works.
Post a Comment for "Is There A Python Api Function To Get Value By Its Name In C++?"