我相信我对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”不在全局范围内?
答案 0 :(得分:2)
全局属于模块的上下文。在GlobalCheck.py中,如果你把
import GlobalSet
print GlobalSet.myVar
这将有效。 (globals()似乎不能跨模块工作。)
答案 1 :(得分:2)
Global in Python意味着当前模块的全局性。要在模块之间共享变量,您需要导入它们。
请注意,代码中的global关键字根本不执行任何操作,因为myVar已在模块级别定义。如果要在该模块中的函数内修改myVar的值,则只需要使用该关键字。