一个简单的python定时器实现,python定时器,下面介绍以threadi


下面介绍以threading模块来实现定时器的方法。使用前先做一个简单试验:

import threading  def sayhello():          print "hello world"          global t        #Notice: use global variable!          t = threading.Timer(5.0, sayhello)          t.start()  t = threading.Timer(5.0, sayhello)  t.start()  
                                运行结果如下
>python hello.py  hello world  hello world  hello world  
                                下面是定时器类的实现:
class Timer(threading.Thread):          """         very simple but useless timer.         """          def __init__(self, seconds):                  self.runTime = seconds                  threading.Thread.__init__(self)          def run(self):                  time.sleep(self.runTime)                  print "Buzzzz!! Time's up!"  class CountDownTimer(Timer):          """         a timer that can counts down the seconds.         """          def run(self):                  counter = self.runTime                  for sec in range(self.runTime):                          print counter                          time.sleep(1.0)                          counter -= 1                  print "Done"  class CountDownExec(CountDownTimer):          """         a timer that execute an action at the end of the timer run.         """          def __init__(self, seconds, action, args=[]):                  self.args = args                  self.action = action                  CountDownTimer.__init__(self, seconds)          def run(self):                  CountDownTimer.run(self)                  self.action(self.args)  def myAction(args=[]):          print "Performing my action with args:"          print args  if __name__ == "__main__":          t = CountDownExec(3, myAction, ["hello", "world"])          t.start() 

评论关闭