首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在另一个线程中更改Python中的全局变量

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

Stack Overflow用户
提问于 2017-05-24 10:33:51
回答 1查看 1.7K关注 0票数 0

我希望用module2.py改变module1.py中的全局变量。

module1.py

代码语言:javascript
运行
复制
#!/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

代码语言:javascript
运行
复制
#!/usr/bin/env python
import module1 as module11


def main():
 print "module2"

 module11.change()


if __name__ == "__main__":
  main()

当我运行sudo module1.py时:

结果在这里,

代码语言:javascript
运行
复制
module2
change
moduel1
moduel1..

我要得到结果

代码语言:javascript
运行
复制
 module2
 change
 END PROGRAM
EN

回答 1

Stack Overflow用户

发布于 2017-05-24 12:58:00

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

代码语言:javascript
运行
复制
def change():
  global values
  print "change"
  values=False
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44155867

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档