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


Posted in Python onMay 02, 2015

下面介绍以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()
Python 相关文章推荐
python压缩文件夹内所有文件为zip文件的方法
Jun 20 Python
Python函数式编程指南(二):从函数开始
Jun 24 Python
Tornado协程在python2.7如何返回值(实现方法)
Jun 22 Python
Python3安装Scrapy的方法步骤
Nov 23 Python
python如何创建TCP服务端和客户端
Aug 26 Python
Python+OpenCV采集本地摄像头的视频
Apr 25 Python
python如何删除文件中重复的字段
Jul 16 Python
关于python3中setup.py小概念解析
Aug 22 Python
jupyter修改文件名方式(TensorFlow)
Apr 21 Python
使用Nibabel库对nii格式图像的读写操作
Jul 01 Python
怎么解决pycharm license Acti的方法
Oct 28 Python
浅析Python打包时包含静态文件处理方法
Jan 15 Python
用Python程序抓取网页的HTML信息的一个小实例
May 02 #Python
在Mac OS上部署Nginx和FastCGI以及Flask框架的教程
May 02 #Python
在Python的Django框架中用流响应生成CSV文件的教程
May 02 #Python
详细解读Python中的__init__()方法
May 02 #Python
举例讲解Python的Tornado框架实现数据可视化的教程
May 02 #Python
Python的Bottle框架中返回静态文件和JSON对象的方法
Apr 30 #Python
使用Python编写提取日志中的中文的脚本的方法
Apr 30 #Python
You might like
php下一个阿拉伯数字转中文数字的函数
2007/07/16 PHP
PHP执行批量mysql语句的解决方法
2013/05/02 PHP
PHP中读取文件的8种方法和代码实例
2014/08/05 PHP
JS代码格式化和语法着色V2
2006/10/14 Javascript
Jquery 快速构建可拖曳的购物车DragDrop
2009/11/30 Javascript
js图片实时加载提供网页打开速度
2014/09/11 Javascript
JavaScript实现Java中StringBuffer的方法
2015/02/09 Javascript
avalon js实现仿微博拖动图片排序
2015/08/14 Javascript
jqGrid表格应用之新增与删除数据附源码下载
2015/12/02 Javascript
jQuery实现的分页功能示例
2017/01/22 Javascript
详解Vue微信公众号开发踩坑全记录
2017/08/21 Javascript
JS实现访问DOM对象指定节点的方法示例
2018/04/04 Javascript
react-navigation之动态修改title的内容
2018/09/26 Javascript
如何用webpack4.0撸单页/多页脚手架 (jquery, react, vue, typescript)
2019/06/18 jQuery
[46:23]完美世界DOTA2联赛PWL S2 FTD vs Magma 第一场 11.20
2020/11/23 DOTA
Django视图之ORM数据库查询操作API的实例
2017/10/27 Python
使用python将大量数据导出到Excel中的小技巧分享
2018/06/14 Python
浅谈python图片处理Image和skimage的区别
2019/08/04 Python
如何用Python来搭建一个简单的推荐系统
2019/08/07 Python
Django nginx配置实现过程详解
2020/09/10 Python
Python安装Bs4的多种方法
2020/11/28 Python
HTML5 与 XHTML2
2008/10/17 HTML / CSS
Clarins娇韵诗英国官网:来自法国的天然护肤品牌
2017/04/18 全球购物
shell程序中如何注释
2012/02/17 面试题
历史学专业大学生找工作的自我评价
2013/10/16 职场文书
大学毕业后的十年规划
2014/01/07 职场文书
自行车广告词大全
2014/03/21 职场文书
2014年寒假社会实践活动心得体会
2014/04/07 职场文书
2014年党的群众路线整改措施思想汇报
2014/10/12 职场文书
优秀团员事迹材料
2014/12/25 职场文书
写给妈妈的感谢信
2015/01/22 职场文书
大学生个人总结范文
2015/02/15 职场文书
提升Nginx性能的一些建议
2021/03/31 Servers
python如何获取网络数据
2021/04/11 Python
CSS3 实现NES游戏机的示例代码
2021/04/21 HTML / CSS
postgresql如何找到表中重复数据的行并删除
2023/05/08 MySQL