如何使python计时器更改变量值

时间:2015-08-21 16:25:30

标签: python python-2.7

我想制作一个计时器,这样在计时器结束时,计时器会改变' timerdone'的值。在我的计时器结束时,它不会更改值。

示例代码:

from time import sleep

timerdone = False

def timer():
    print "3"
    sleep(1)
    print "2"
    sleep(1)
    print "1"
    sleep(1)
    timerdone = True

timer()

if timerdone == True:
    print "BOOM!"
else:
    print "Something wrong."

当我在终端中运行它时,它会打印出“错误。”#34;而不是" BOOM"。我知道我可以让它打印出来#BOOM!"在计时器结束时,这只是一种更简单的方式来显示我的问题。

3 个答案:

答案 0 :(得分:2)

您需要返回该值。所以:

from time import sleep

timerdone = False

def timer():
    print "3"
    sleep(1)
    print "2"
    sleep(1)
    print "1"
    sleep(1)
    return True

timerdone = timer()

if timerdone == True:
    print "BOOM!"
else:
    print "Something wrong."

全局变量也可以工作,但返回值通常是更好的做法。

答案 1 :(得分:2)

您没有返回timerdone,所以您所做的只是在函数中创建一个新变量名timedone并将其设置为false。你应该改回来。

from time import sleep

def timer():
    print "3"
    sleep(1)
    print "2"
    sleep(1)
    print "1"
    sleep(1)
    return True   


if timer():
    print "BOOM!"
else:
    print "Something wrong."

答案 2 :(得分:1)

您需要制作变量global

def timer():
    global timerdone
    print "3"
    sleep(1)
    print "2"
    sleep(1)
    print "1"
    sleep(1)
    timerdone = True

如果您不使用关键字global,则变量timerdone会引用函数timer()的本地范围。

请注意,您可以在不指定关键字的情况下访问并读取全局变量,但如果要更改其值,则需要global