繁体   English   中英

在另一个线程中更改Python中的全局变量

[英]Change global variable in Python in another thread

我想通过module2.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

#!/usr/bin/env python
import module1 as module11


def main():
 print "module2"

 module11.change()


if __name__ == "__main__":
  main()

当我运行sudo python module1.py时:

结果在这里

module2
change
moduel1
moduel1..

我想要结果

 module2
 change
 END PROGRAM

您需要将值声明为全局值,如果不这样做,则该变量将作为新的局部变量处理。

def change():
  global values
  print "change"
  values=False

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM