Python什么时候对导入的文件进行评估?

问题描述 投票:0回答:1

我希望这个问题的措辞是有意义的。我想做的是改变一个文件中的平面变量的值,并让导入该文件的文件看到更新后的值。似乎我可以这样做。比如说

#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输入来改变设置。

python import global
1个回答
2
投票

一旦文件 settings.py 导入后,python 就完成了对文件的查看。现在内存中已经加载了一个模块,如果在其他地方导入,该模块将被加载到那里。第一次导入后,文件再也不会被查看了。

你的函数改变了 VARIABLE 在该模块中,你可以依赖它作为你的新值,除非你再次改变它。你可以依赖它作为你的新值,除非你再次改变它。

© www.soinside.com 2019 - 2024. All rights reserved.