适当的Python全局变量使用

时间:2014-10-06 17:17:42

标签: python global-variables

我相信我对Python全局变量及其范围有一些基本的误解,我希望有人可以教育我。 假设我有两个Python文件。

#"GlobalSet.py"

global myVar
myVar = True

print "myVar" in globals()

import GlobalCheck

#"GlobalCheck.py"

print "myVar" in globals()

运行“GlobalSet.py”令人惊讶地导致

True
False

为什么“GlobalVck”中的“myVar”不在全局范围内?

2 个答案:

答案 0 :(得分:2)

全局属于模块的上下文。在GlobalCheck.py中,如果你把

import GlobalSet
print GlobalSet.myVar

这将有效。 (globals()似乎不能跨模块工作。)

答案 1 :(得分:2)

Global in Python意味着当前模块的全局性。要在模块之间共享变量,您需要导入它们。

请注意,代码中的global关键字根本不执行任何操作,因为myVar已在模块级别定义。如果要在该模块中的函数内修改myVar的值,则只需要使用该关键字。