我正在寻找一种平滑的(如果可能的话是python的)方式,在while 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()
我会将所有任务放入字典中,然后您可以简单地跟踪以前的状态,并仅在达到新状态时执行新任务,如下所示:
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)