[英]Python: how to share a variable between two modules
我已经查看了一些解决问题的其他线程,但并不完全明白。
假设我有一个包含共享变量的配置文件:
flag = False
import config
while(1):
config.flag = True
print config.flag
import config
while(1):
config.flag = False
print config.flag
如果我现在运行Test1.py
和Test2.py
,我可以看到之间的切换'True'
'False'
在输出? 我不关心此时的同步,只要它可以访问共享变量,那就完成了。
谢谢。
不会。只要您在不同的进程中运行这两个实例,内存就不会被神奇地共享。
您正在开始两个不同的(Python)流程。 这些进程导入配置模块。 简化,这只是在config.py中加载代码的一种形式。 这些流程之间没有进一步的沟通。
(作为旁注,config.py中的代码仅在第一次解释时,它被编译并保存在单独的config.pyc中,加载速度更快。下次编辑config.py时,将重新创建config.pyc) 。
还有其他选择:
线程示例:
flag = False
import thread
import time
import config
def test1():
while 1:
config.flag = True
time.sleep(0.7)
print 'test1:', config.flag
time.sleep(1)
def test2():
while 1:
config.flag = False
time.sleep(1.1)
print 'test2:', config.flag
time.sleep(1)
thread.start_new(test1, ())
test2()
发布您尝试执行此操作的原因可能会有所帮助。 多线程是一个难题。 这个问题可能很有用: https : //stackoverflow.com/questions/4690518/multithreading-in-python
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.