我正在寻找一种平稳(如果可能的pythonic)方式在一段时间内执行某些事情。每次状态更改时,只有一次True循环,然后如果某些内容发生变化,它应该打印出新的更改而不是垃圾邮件控制台,无论当前值是什么。
我的通用代码:
def function()
while True:
check_status() #External function that returns a new status value if it changes
print check_status()
if status == 0:
do_something()
continue
if status == 1:
do_something_else()
continue
function()
答案 0 :(得分:1)
我会将所有任务放入字典中,然后您可以简单地跟踪以前的状态,只在达到新状态时执行新任务,如下所示:
from time import sleep
tasks = {1:do_something,
2:do_something_else}
prev_status = None
while True:
status = check_status()
if status != prev_status:
prev_status = status
print "status changed to: {}".format(status)
tasks[status]()
sleep(.1)