正确使用Python全局变量



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

#"GlobalSet.py"
global myVar
myVar = True
print "myVar" in globals()
import GlobalCheck

#"GlobalCheck.py"
print "myVar" in globals()

运行"GlobalSet.py"会意外地导致

True
False

为什么"myVar"不在"GlobalCheck"的全局范围内?

Python中的全局表示当前模块的全局。要在模块之间共享变量,需要导入它们。

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

全局位于模块的上下文中。在GlobalCheck.py中,如果您放置

import GlobalSet
print GlobalSet.myVar

这会奏效的。(globals()似乎无法跨模块工作。)

相关内容

  • 没有找到相关文章

最新更新