Python:如何使一个交叉模块变量?

问题:

__debug__变量部分是因为它影响每个模块。如果我想要创建另一个以相同方式工作的变量,我该怎么办?
变量(我们原来称之为’foo’)不一定是真正的全局性,在某种意义上说,如果我在一个模块中改变foo,那么在其他模块中被更新。我可以在导入其他模块之前设置foo,然后他们会看到相同的值。

回答:

我不以任何方式,形状或形式认可这个解决方案。但是,如果您将一个变量添加到__builtin__模块,那么默认情况下,它将被访问,就像来自任何其他包含__builtin__模块的全局变量一样。
a.py包含

print foo

b.py包含

import __builtin__
__builtin__.foo = 1
import a

结果是打印“1”。
 编辑: __builtin__模块可用作本地符号__builtins__,这就是其中两个答案之间的差异的原因。另请注意,__builtin__已经在python3中重命名为builtins

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: Python: How to make a cross-module variable?

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

+ 38 = 45