我看到的是我不理解的python行为。考虑这种布局:

project
|   main.py
|   test1.py
|   test2.py
|   config.py

主.py:
import config as conf
import test1
import test2

print(conf.test_var)
test1.test1()
print(conf.test_var)
test2.test2()

试验1.py:
import config as conf

def test1():
    conf.test_var = 'test1'

试验2.py:
import config as conf

def test2():
    print(conf.test_var)

配置PY:
test_var = 'initial_value'

因此,python main.py生产:
initial_value
test1
test1

我对最后一句话感到困惑。我以为它会再次打印initial_value,因为我再次导入config.py中的test2.py,而且我认为我在上一步中所做的更改将被覆盖。我误解了什么吗?

最佳答案

python缓存导入的模块。第二个import调用不会重新加载文件。

关于python - 导入了Python模块;为什么重新分配其中的成员也会影响其他地方的进口?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39144498/

10-12 18:14
查看更多