谁在任何情况下都使用sys.modules ['__ builtin__']来存储数据?

时间:2017-12-19 00:55:33

标签: python

我正在研究一些python代码(编写于2011年左右),并实现了以下保持全局变量的行,如下所示:

setattr(sys.modules['__builtin__'], 'globalVarTest', 123)

然后稍后访问

getattr(sys.modules['__builtin__'], 'globalVarTest')

我只是想知道,为什么不使用带有类成员变量的类来保存需要全局存在的数据。或者这是我完全无知的东西,并没有看到背后的魔力?

1 个答案:

答案 0 :(得分:1)

如果您正在寻找一个案例,这里有一个from cpython itself(在评估和显示交互式语句后设置全局变量_。)

以交互方式运行解释器时调用此方法 - 例如:

>>> 999 * 999
998001
>>> _
998001
>>> import builtins
>>> builtins._
998001

一般来说,您应该 从不 在库/应用程序中执行此操作。添加神奇的超级全局变量不仅会混淆linters,还会混淆未来的维护者,他们希望某些东西能够作为内置函数出现。