在另一个线程中更改Python中的全局变量 [英] Change global variable in Python in another thread
本文介绍了在另一个线程中更改Python中的全局变量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想通过module2.py更改module1.py中的全局变量.
I want change global variable in module1.py by module2.py.
module1.py
#!/usr/bin/env python
import threading
import module2 as module22
import time
values=True
def main():
print "m"
def thread():
while(values):
print "moduel1"
time.sleep(0.50)
print "END PROGRAM"
def change():
print "change"
values=False
if __name__ == "__main__":
t2=threading.Thread(target=module22.main())
t1=threading.Thread(target=thread())
t1.start()
t2.start()
t1.join()
t2.join()
module2.py
#!/usr/bin/env python
import module1 as module11
def main():
print "module2"
module11.change()
if __name__ == "__main__":
main()
当我运行sudo python module1.py时:
When I run sudo python module1.py:
结果在这里
Result is here
module2
change
moduel1
moduel1..
我想获得结果
I want get result
module2
change
END PROGRAM
推荐答案
您需要将值声明为全局值,如果不这样做,则该变量将作为新的局部变量处理.
You need to declare values as global, if you dont do this, the variable is handled as new local variable.
def change():
global values
print "change"
values=False
这篇关于在另一个线程中更改Python中的全局变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文