有没有一种方法可以获取现有对象的对象引用,在嵌入式Python代码中?
换句话说: 如果一个名为“obj”的对象已经存在(由脚本创建), 而我需要将其“转换”为PyObject*引用,是否有像这样的函数:PyObject *getObjectReference(char *name)?
编辑: 举个例子, 假设我在代码的某个部分导入了某些模块,使用以下方式:
PyRun_SimpleString("var = 1");
(或者也可以是定义了同一个变量的外部脚本)
现在,在代码的另一个地方,我想要获取那个变量。我正在寻找像这样的东西
PyObject *varPy = PyObject_GetGlobalObject("var");
"读取Python全局变量在C中的值"部分回答了我的问题,暗示了如果没有对创建它的模块的引用,就无法检索到全局定义的变量。这是正确的吗?"
PyRun_SimpleString
的文档,它会告诉您它所运行的模块是__main__
。 - DavidW