用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 命令行参数sys.argv
Sep 06 Python
约瑟夫问题的Python和C++求解方法
Aug 20 Python
用 Python 爬了爬自己的微信朋友(实例讲解)
Aug 25 Python
Python算法之求n个节点不同二叉树个数
Oct 27 Python
PyQt5每天必学之拖放事件
Aug 27 Python
详解python中递归函数
Apr 16 Python
python打开使用的方法
Sep 30 Python
python基于opencv检测程序运行效率
Dec 28 Python
Python中zip()函数的解释和可视化(实例详解)
Feb 16 Python
踩坑:pytorch中eval模式下结果远差于train模式介绍
Jun 23 Python
浅谈Selenium 控制浏览器的常用方法
Dec 04 Python
python中的plt.cm.Paired用法说明
May 31 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中url函数介绍及使用示例
2014/02/13 PHP
php 使用curl模拟登录人人(校内)网的简单实例
2016/06/06 PHP
JQuery的Validation插件中Remote验证的中文问题
2010/07/26 Javascript
JQUERY1.6 使用方法四 检测浏览器
2011/11/23 Javascript
javascript中递归函数用法注意点
2015/07/30 Javascript
跟我学习javascript的作用域与作用域链
2015/11/19 Javascript
js控制li的隐藏和显示实例代码
2016/10/15 Javascript
微信小程序 swiper组件轮播图详解及实例
2016/11/16 Javascript
详解webpack 如何集成第三方js库
2017/06/29 Javascript
关于TypeScript中import JSON的正确姿势详解
2017/07/25 Javascript
关于react中组件通信的几种方式详解
2017/12/10 Javascript
Emberjs 通过 axios 下载文件的方法
2019/09/03 Javascript
基于js实现抽红包并分配代码实例
2019/09/19 Javascript
js前端如何写一个精确的倒计时代码
2019/10/25 Javascript
vue-cli设置publicPath小记
2020/04/14 Javascript
autojs 蚂蚁森林能量自动拾取即给指定好友浇水的实现方法
2020/05/03 Javascript
vue style width a href动态拼接问题的解决
2020/08/07 Javascript
python插入数据到列表的方法
2015/04/30 Python
Python3利用print输出带颜色的彩色字体示例代码
2019/04/08 Python
Pandas DataFrame中的tuple元素遍历的实现
2019/10/23 Python
Pandas操作CSV文件的读写实现方法
2019/11/13 Python
Python新手如何进行闭包时绑定变量操作
2020/05/29 Python
学习python需要有编程基础吗
2020/06/02 Python
naturalizer加拿大官网:美国娜然女鞋
2017/04/04 全球购物
J.Crew官网:美国知名休闲服装品牌
2017/05/19 全球购物
opencv实现图像几何变换
2021/03/24 Python
自我鉴定书范文
2013/10/02 职场文书
酒店办公室文员岗位职责
2013/12/18 职场文书
毕业生个人投资创业计划书
2014/01/04 职场文书
超市采购员岗位职责
2014/02/01 职场文书
任命书模板
2014/06/04 职场文书
公司董事长助理工作职责
2014/07/12 职场文书
幼儿园家长工作总结2015
2015/04/25 职场文书
生日赠语
2015/06/23 职场文书
Nginx实现会话保持的两种方式
2022/03/18 Servers
python DataFrame中stack()方法、unstack()方法和pivot()方法浅析
2022/04/06 Python