1

我想在python中构建一个while循环,等待某个条件(函数foo)改变,或者在某个指定时间后给出超时。这是我将如何编码

def wait_change():
  import time
  timeout = 10 # time out of 10 seconds for example

  # set initial time and initial variables
  start_time = time.time()
  current_time = 0
  start_state = foo()
  current_state = start_state

  while current_time<timeout and start_state==current_state:
    current_time = time.time()-start_time
    current_state = foo()

 if current_time<timeout:
   return None
 else:
   return current_state

此功能运行良好,但我不确定这是否是最佳方式。重要的是我想检查一些状态并返回它,并在超时的情况下通知调用函数(这里返回None)。这是最好的实现,还是有更pythonic的方法来处理这个?特别是我担心

  • 对函数进行两次调用foo
  • 如果返回值是适当的(即凋谢返回值或None
  • 如果使用signalorthreading可能更有用导致更好的代码

谢谢,亚历克斯

4

0 回答 0