我想在线程外使用一个变量。在本例中,我希望程序每次运行“update()”后都打印“a”。我得到了“a”打印一次,但就是这样,我可以看到“更新”打印每一秒,所以我知道我的线程运行正常,但我根本无法得到什么在线程了。为什么?你知道吗
import threading
a = 1
def update():
global a
a += 1
print ("updating")
threading.Timer(1, update).start()
update()
print(a)
我看到一些代码在线程本身之外启动线程:
def update():
global a
a += 1
print ("updating")
threading.Timer(1, update).start()
update()
但我试过了,对我来说不管用。我只打印了两次“更新”。我认为它应该在函数中,这样就可以在每次调用结束时重新启动线程。对的?你知道吗
还是我没有正确声明变量?你知道吗
在第一段代码中,只打印一次
a
的值。但是,您的线程会继续更新它。你知道吗不要只在代码末尾
print(a)
,请尝试在循环中打印a
,如下所示:当您这样做时,您将看到
a
正在更新,并且您可以在线程之外访问它的值。你知道吗相关问题 更多 >
编程相关推荐