我不以任何方式,形状或形式认可该解决方案。但是,如果你将变量添加到__builtin__
模块,则__builtin__
默认情况下,就像所有其他模块(包括所有模块)中的全局变量一样,将可以对其进行访问。
a.py包含
print foo
b.py包含
import __builtin__
__builtin__.foo = 1
import a
结果是打印了“ 1”。
编辑:该__builtin__
模块可用作本地符号__builtins__
-这就是其中两个答案之间存在差异的原因。另请注意,__builtin__
它已builtins
在python3中重命名为。
如果你需要全局跨模块变量,则只需简单的全局模块级变量就足够了。
a.py:
var = 1
b.py:
import a
print a.var
import c
print a.var
c.py:
import a
a.var = 2
测试:
$ python b.py
# -> 1 2