我希望这个问题的措辞是有意义的。我想做的是改变一个文件中的平面变量的值,并让导入该文件的文件看到更新后的值。似乎我可以这样做。比如说
#settings.py
VARIABLE = 1
def change_variable():
global VARIABLE
VARIABLE = 2
和
#main.py
import settings
print(settings.VARIABLE)
settings.change_variable()
print(settings.VARIABLE)
其中输出。
1
2
As desired. 虽然我有点惊讶,因为我以为在导入settings.VARIABLE后,settings.VARIABLE的值可能会被固定下来。我想知道我是否可以依赖这种行为。因此,我的问题是,从导入文件的角度来看,导入文件的值一般什么时候会被 "更新 "或 "重新评估"?后面是如何工作的?
当然,我可以直接做一个类。但我不喜欢设置,或任何配置,是一个对象的想法。我更喜欢扁平化。但我希望在导入后可以根据用户的cli输入来改变设置。
一旦文件 settings.py
导入后,python 就完成了对文件的查看。现在内存中已经加载了一个模块,如果在其他地方导入,该模块将被加载到那里。第一次导入后,文件再也不会被查看了。
你的函数改变了 VARIABLE
在该模块中,你可以依赖它作为你的新值,除非你再次改变它。你可以依赖它作为你的新值,除非你再次改变它。