python - 跨文件共享全局变量。怎么运行的?

python - sharing global variables across files. how it works?

我正在寻找一种跨多个文件共享全局变量的方法。我找到了this and the second answer brought me here。所以现在我知道该怎么做了。例如:

# config.py
THIS_IS_A_GLOBAL_VARIABLE = 1
# sub.py
import config

def print_var():
    print('global variable: ', config.THIS_IS_A_GLOBAL_VARIABLE)
# main.py
import config
from sub import print_var

print_var()   # global variable:  1

config.THIS_IS_A_GLOBAL_VARIABLE = 2
print_var()   # global variable:  2

这正是我想要的。

问题是,我很好奇它为什么有效? Here是一个简单的解释:Because there is only one instance of each module, any changes made to the module object get reflected everywhere。但我仍然没有完全理解它。有没有进一步的解释?
非常感谢!

有效的位在这里:config.THIS_IS_A_GLOBAL_VARIABLE = 2

发生的事情是 config 是对模块 config.py 的引用。然后 THIS_IS_A_GLOBAL_VARIABLE 是该模块中的属性之一,上面的赋值使属性引用不同的对象。

现在,任何 其他具有以下行的模块:import config 指的是同一个模块,当您获取任何属性时,您会获得相同的引用。