我有一个在脚本运行时执行的函数。这个函数叫做main()
timer = 0
def main():
function2()
function3()
timer()
此函数调用以下函数:function2,function3和timer。
def timer():
global timer
while timer < 120:
timer += 1
timer.sleep(1)
print timer
if timer == 120:
timer = 0
function2 = false
问题是计时器无法在控制台中打印。 120秒后,功能2不会被禁用。
我在做错了什么?任何帮助或建议将不胜感激!
答案 0 :(得分:1)
这不会像那样工作,a)因为function2
是timer
中的局部变量,而b)因为timer
不是异步运行的。此函数内部也不会访问名为timer
的变量,因为它本身名为timer
。
如果你想在120秒后中断function2
,你应该在time.time()
的开头设置一个计时器(function2
),然后在我假设的循环中设置{ {1}}在进入功能时,检查当前时间是否超过最初记录的时间120。在这种情况下,您可以function2
从该功能中停止它。
编辑:这是一个例子:
return
答案 1 :(得分:0)
我没有查看代码的逻辑,但您需要做的第一件事就是消除变量的歧义,例如:
import time
timer_ = 0
def timer():
global timer_
while timer_ < 120:
timer_ += 1
time.sleep(1)
print timer_
if timer_ == 120:
timer_ = 0
function2 = lambda: False
def main():
function2()
function3()
timer()