[英]Change global variable in Python in another thread
I want change global variable in module1.py by module2.py. 我想通过module2.py更改module1.py中的全局变量。
module1.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 module2.py
#!/usr/bin/env python
import module1 as module11
def main():
print "module2"
module11.change()
if __name__ == "__main__":
main()
When I run sudo python module1.py: 当我运行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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.