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
指的是同一个模块,当您获取任何属性时,您会获得相同的引用。
我正在寻找一种跨多个文件共享全局变量的方法。我找到了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
指的是同一个模块,当您获取任何属性时,您会获得相同的引用。