在中读取python的全局变量

2024-09-28 05:22:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在努力学习如何正确地使用Python/capi——我实际需要做的只是读取一个全局变量(在我的字典中——但是我从一个简单的整数变量开始)。 利用讨论: How to access a Python global variable from C? 答案的来源是: http://bytes.com/topic/python/answers/705918-c-api-embedded-python-how-get-set-named-variables 我写了一个小东西:

Python代码(幽会.py)公司名称:

var1 = 1

var2 = ['bla', 'blalba']

var3 = {"3" : "Three", "2" : "Two", "1" : "One", "0" : "Ignition!"}

print "end of file - tryStuff!!"

C代码(embeddepythontry.C):

^{pr2}$

运行这个c程序的输出是:

end of file - tryStuff!!
After the import, before the addition
var1=-1 ; var1==NULL: 1

这意味着Python解释器找到并运行正确的Python脚本,但不知何故它无法读取变量(var1)。在

有人能发现问题吗?我已经有点迷路了。看起来最简单的情况是应用Python/capi,但它不起作用。 我错过了什么?在


Tags: oftheto代码利用字典access整数
1条回答
网友
1楼 · 发布于 2024-09-28 05:22:21

您应该对PyImport_ImportModule的结果调用PyObject_GetAttrString。我不知道您为什么认为__main__模块应该定义该变量:

PyObject *mod = PyImport_ImportModule("tryStuff");
PyObject *var1Py = PyObject_GetAttrString(mod, "var1");

您还应该添加对结果的检查,因为当导入失败时,PyImport_ImportModule可以返回NULL。在

相关问题 更多 >

    热门问题