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

 更新时间:2015年05月02日 15:11:43   作者:PandaraWen  
这篇文章主要介绍了用Python编写简单的定时器的方法,主要用到了Python中的threading模块,需要的朋友可以参考下

下面介绍以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() 

相关文章

  • 如何在Win10系统使用Python3连接Hive

    如何在Win10系统使用Python3连接Hive

    这篇文章主要介绍了如何在Win10系统使用Python3连接Hive,帮助大家更好的利用python读取数据,进行探索、分析和挖掘工作。感兴趣的朋友可以了解下
    2020-10-10
  • Python re模块的使用全过程

    Python re模块的使用全过程

    这篇文章主要介绍了Python re模块的使用全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-04-04
  • Python参数传递机制传值和传引用原理详解

    Python参数传递机制传值和传引用原理详解

    这篇文章主要介绍了Python参数传递机制传值和传引用原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • Python基于opencv的图像压缩算法实例分析

    Python基于opencv的图像压缩算法实例分析

    这篇文章主要介绍了Python基于opencv的图像压缩算法,结合实例形式分析了使用opencv进行图像压缩的常用操作技巧与注意事项,需要的朋友可以参考下
    2018-05-05
  • 探究Python多进程编程下线程之间变量的共享问题

    探究Python多进程编程下线程之间变量的共享问题

    这篇文章主要介绍了探究Python多进程编程下线程之间变量的共享问题,多进程编程是Python学习进阶中的重要知识,需要的朋友可以参考下
    2015-05-05
  • Pycharm使用CV2的详细图文教程

    Pycharm使用CV2的详细图文教程

    在Windows操作系统下安装Python3和OpenCV库后,通过安装并配置PyCharm开发环境,可以直接显示并调用已安装的包,例如使用cv2库的接口进行编程和项目开发,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2024-10-10
  • 使用darknet框架的imagenet数据分类预训练操作

    使用darknet框架的imagenet数据分类预训练操作

    这篇文章主要介绍了使用darknet框架的imagenet数据分类预训练操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-07-07
  • 详细解读Python的web.py框架下的application.py模块

    详细解读Python的web.py框架下的application.py模块

    这篇文章主要介绍了Python的web.py框架下的application.py模块,作者深入分析了web.py的源码,需要的朋友可以参考下
    2015-05-05
  • python 实现银行卡号查询银行名称和简称功能

    python 实现银行卡号查询银行名称和简称功能

    这篇文章主要介绍了python 实现银行卡号查询银行名称和简称功能,本文通过实例代码补充介绍了基于PyQT5+OpenCv实现银行卡号识别功能,感兴趣的朋友一起看看吧
    2023-11-11
  • python tkinter实现学生信息管理系统

    python tkinter实现学生信息管理系统

    这篇文章主要为大家详细介绍了python tkinter实现学生信息管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02

最新评论