网络编程
位置:首页>> 网络编程>> Python编程>> 用Python编写简单的定时器的方法

用Python编写简单的定时器的方法

作者:PandaraWen  发布时间:2022-03-15 07:20:32 

标签:Python

下面介绍以threading模块来实现定时器的方法。

首先介绍一个最简单实现:


import threading

def say_sth(str):
 print str
 t = threading.Timer(2.0, say_sth,[str])
 t.start()

if __name__ == '__main__':
 timer = threading.Timer(2.0,say_sth,['i am here too.'])
 timer.start()

不清楚在某些特殊应用场景下有什么缺陷否。

下面是所要介绍的定时器类的实现:


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()
0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com