gpt4 book ai didi

python-如何获取定时器中使用的函数的输出

转载 作者:太空狗 更新时间:2023-10-30 01:15:01 25 4
gpt4 key购买 nike

我想运行一个函数 10 秒,然后再做其他事情。这是我使用 Timer 的代码

from threading import Timer
import time

def timeout():
b='true'
return b

a='false'
t = Timer(10,timeout)
t.start()

while(a=='false'):
print '1'
time.sleep(1)
print '2'

我知道使用 Timer 我可以在计时器结束时打印一些东西(打印 b 而不是 return b 在 10 秒后返回 true)。我想知道的是:我能否在“a”中获取 timeout() 返回的值以正确执行我的 while 循环?

或者有其他方法可以用另一个函数来完成吗?

最佳答案

函数的返回值只是被 Timer 丢弃,正如我们在 source 中看到的那样.解决这个问题的一种方法是传递一个可变参数并在函数内部改变它:

def work(container):
container[0] = True

a = [False]
t = Timer(10, work, args=(a,))
t.start()

while not a[0]:
print "Waiting, a[0]={0}...".format(a[0])
time.sleep(1)

print "Done, result: {0}.".format(a[0])

或者,使用global,但这不是君子行事的方式。

关于python-如何获取定时器中使用的函数的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25189389/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com