我正在尝试在程序包和模块之间共享(设置/获取)变量,但该值没有改变。
我在做什么错了?
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
答案 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)