python计时器和禁用功能

时间:2016-02-10 22:59:50

标签: python function timer

我有一个在脚本运行时执行的函数。这个函数叫做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不会被禁用。

我在做错了什么?任何帮助或建议将不胜感激!

2 个答案:

答案 0 :(得分:1)

这不会像那样工作,a)因为function2timer中的局部变量,而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()