只有在状态改变时才在循环内执行命令



我正在寻找一种平滑的(如果可能的话是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)

相关内容

  • 没有找到相关文章

最新更新