共享模块变量不更新?

时间:2019-03-28 08:35:59

标签: python python-3.x module

我正在尝试在程序包和模块之间共享(设置/获取)变量,但该值没有改变。

我在做什么错了?

shared.py

my_shared_value = 'init'

mod_write.py

import mylib.shared
mylib.shared.my_shared_value = 'changed'

mod_read.py

import mylib.shared

while True:
    # outputs always 'init' but should output 'changed' 
    # after mod_set.py was executed.
    print(mylib.shared.my_shared_value)

执行(相同的虚拟环境)

# Terminal 1
python ./mod_read.py # outputs 'init', runs forever

# Terminal 2
python ./mod_write.py # doesn't affect the output of Terminal 1

1 个答案:

答案 0 :(得分:0)

要查看mod_write.py文件的结果,您还需要导入该文件(但在首次导入之后)。

在这种情况下,您将分别执行文件,因此看不到预期的结果。

尝试这种方式:

import mylib.shared
import mylib.mod_write

while True:
    # outputs always 'init' but should output 'changed' 
    # after mod_set.py was executed.
    print(mylib.shared.my_shared_value)