我调查了python中全局变量的范围仅限于模块。但我需要范围在不同模块之间是全局的。有这样的事吗?我玩__builtin__
但没有运气。
提前感谢!
答案 0 :(得分:6)
您可以通过显式导入来从其他模块访问全局变量。
在模块foo
中:
joe = 5
在模块bar
中:
from foo import joe
print joe
请注意,不建议这样做。使用函数隐藏对模块变量的访问要好得多。
答案 1 :(得分:3)
Python不支持在几个模块之间共享的全局变量:这是一个功能。隐式修改远程使用的变量的代码令人困惑且无法维护。 真正的解决方案是将所有状态封装在一个类中,并将其实例传递给任何必须修改它的实例。这可以使代码更清晰,更易于维护,更可测试,更模块化,更易于使用。
答案 2 :(得分:0)
本地之外的范围必须通过对范围的引用,或在global
或nonlocal
(3.x +)指令之后写入。