我正在研究一些python代码(编写于2011年左右),并实现了以下保持全局变量的行,如下所示:
setattr(sys.modules['__builtin__'], 'globalVarTest', 123)
然后稍后访问
getattr(sys.modules['__builtin__'], 'globalVarTest')
我只是想知道,为什么不使用带有类成员变量的类来保存需要全局存在的数据。或者这是我完全无知的东西,并没有看到背后的魔力?
答案 0 :(得分:1)
如果您正在寻找一个案例,这里有一个from cpython itself(在评估和显示交互式语句后设置全局变量_
。)
以交互方式运行解释器时调用此方法 - 例如:
>>> 999 * 999
998001
>>> _
998001
>>> import builtins
>>> builtins._
998001
一般来说,您应该 从不 在库/应用程序中执行此操作。添加神奇的超级全局变量不仅会混淆linters,还会混淆未来的维护者,他们希望某些东西能够作为内置函数出现。