在C++中嵌入Python:赋值C++和Python变量
我正在写一个小程序(下面这个),它把Python嵌入到C++代码中。
#include <Python.h>
int main()
{
int x;
Py_Initialize();
const char* pythonScript = "print 'Start'"
PyRun_SimpleString(pythonScript);
/*
assign a python variable 'n' to 'x' i.e n=x
*/
Py_Finalize();
return 0;
}
我这里的需求是把Python中的变量'n'赋值为C++中的变量'x'。有没有办法做到这一点呢?
提前谢谢你们。
1 个回答
1
下面这段代码应该可以正常运行(虽然没有测试过):
PyObject *main = PyImport_AddModule("__main__"); // borrowed
if (main == NULL)
error();
PyObject *globals = PyModule_GetDict(main); // borrowed
PyObject *value = PyInt_FromLong(x);
if (value == NULL)
error();
if (PyDict_SetItemString(globals, "n", value) < 0)
error();
Py_DECREF(value);