我希望问题的措辞有意义。我想要做的是更改文件中平面变量的值,并让导入该文件的文件看到更新后的值。看来我可以做到这一点。例如:
#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
随心所欲。虽然我有点惊讶,因为我认为 settings.VARIABLE 的值可能会在导入设置后固定。我想知道我是否可以依赖这种行为。因此,我的问题也是,从导入文件的角度来看,导入文件中的值一般何时会被“更新”或“重新评估”?它在幕后是如何运作的?
我当然可以只上一个类。但我不喜欢将设置或任何配置作为对象的想法。我更喜欢它平坦。但我想要在导入后根据用户 cli 输入更改设置的选项。
最佳答案
导入文件 settings.py
后,python 将完成对文件的查看。它现在有一个模块加载到内存中,如果它被导入到其他地方,该模块将被加载到那里。第一次导入后,再也不会查看该文件。
您的函数更改了该模块中 VARIABLE
的值。你可以相信它是你的新值(value),除非你再次改变它。
关于Python 何时评估导入的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62312901/