python使用线程封装的一个简单定时器类实例


Posted in Python onMay 16, 2015

本文实例讲述了python使用线程封装的一个简单定时器类。分享给大家供大家参考。具体实现方法如下:

from threading import Timer
class MyTimer:
 def __init__(self):
 self._timer= None
 self._tm = None
 self._fn = None
 def _do_func(self):
 if self._fn:
  self._fn()
  self._do_start()
 def _do_start(self):
 self._timer = Timer(self._tm, self._do_func)
 self._timer.start()
 def start(self, tm, fn):
 self._fn = fn
 self._tm = tm
 self._do_start()
 def stop(self):
 try:
  self._timer.cancel()
 except:
  pass
def hello():
 from datetime import datetime
 print("hello world!", datetime.now())
if __name__ == '__main__':
 mt = MyTimer()
 mt.start(2, hello)
 for i in range(10):
 import time
 time.sleep(1)
 mt.stop()

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
简单介绍Python中利用生成器实现的并发编程
May 04 Python
python定时器(Timer)用法简单实例
Jun 04 Python
对python程序内存泄漏调试的记录
Jun 11 Python
解决pycharm py文件运行后停止按钮变成了灰色的问题
Nov 29 Python
python2与python3的print及字符串格式化小结
Nov 30 Python
python try 异常处理(史上最全)
Mar 07 Python
Python 使用PyQt5 完成选择文件或目录的对话框方法
Jun 27 Python
Django框架之登录后自定义跳转页面的实现方法
Jul 18 Python
Python迷宫生成和迷宫破解算法实例
Dec 24 Python
python json load json 数据后出现乱序的解决方案
Feb 27 Python
Python第三方库的几种安装方式(小结)
Apr 03 Python
python的setattr函数实例用法
Dec 16 Python
python通过函数属性实现全局变量的方法
May 16 #Python
Python中计算三角函数之cos()方法的使用简介
May 15 #Python
用Python计算三角函数之atan()方法的使用
May 15 #Python
Python计算三角函数之asin()方法的使用
May 15 #Python
用Python计算三角函数之acos()方法的使用
May 15 #Python
python实现一次创建多级目录的方法
May 15 #Python
python使用wmi模块获取windows下硬盘信息的方法
May 15 #Python
You might like
phpMyAdmin链接MySql错误 个人解决方案
2009/12/28 PHP
CI框架中通过hook的方式实现简单的权限控制
2015/01/07 PHP
Zend Framework教程之Application用法实例详解
2016/03/14 PHP
PHP中ajax无刷新上传图片与图片下载功能
2017/02/21 PHP
PHP基于简单递归函数求一个数阶乘的方法示例
2017/04/26 PHP
PHP fopen中文文件名乱码问题解决方案
2020/10/28 PHP
你需要知道的10个最佳javascript开发实践小结
2012/04/15 Javascript
js 数组去重的四种实用方法
2014/09/09 Javascript
做web开发 先学JavaScript
2014/12/12 Javascript
javascript判断网页是关闭还是刷新
2015/09/12 Javascript
jQuery使用方法
2017/02/04 Javascript
nodejs基于mssql模块连接sqlserver数据库的简单封装操作示例
2018/01/05 NodeJs
对vue.js中this.$emit的深入理解
2018/02/23 Javascript
详解vue-cli 构建项目 vue-cli请求后台接口 vue-cli使用axios、sass、swiper
2018/05/28 Javascript
JS内部事件机制之单线程原理
2018/07/02 Javascript
JavaScript中变量提升与函数提升经典实例分析
2018/07/26 Javascript
layui-laydate时间日历控件使用方法详解
2018/11/15 Javascript
ES6知识点整理之对象解构赋值应用示例
2019/04/17 Javascript
微信小程序实现禁止分享代码实例
2019/10/19 Javascript
原生js实现贪食蛇小游戏的思路详解
2019/11/26 Javascript
python 切换root 执行命令的方法
2019/01/19 Python
python在不同条件下的输入与输出
2020/02/13 Python
python实现快递价格查询系统
2020/03/03 Python
有750多个顶级品牌的瑞士时尚在线:ABOUT YOU
2017/01/04 全球购物
美国婴儿用品店:Babies”R”Us
2017/10/12 全球购物
Sephora丝芙兰泰国官方网站:国际知名化妆品购物
2017/11/15 全球购物
您附近的水疗和健康场所:Spafinder(美国)
2019/07/05 全球购物
新浪网技术部笔试题
2016/08/26 面试题
托管代码(Managed Code)和非托管代码(Unmanaged Code)有什么区别
2014/09/29 面试题
中医药大学市场营销专业自荐信
2013/09/29 职场文书
生物化工工艺专业应届生求职信
2013/10/08 职场文书
副处级干部考察材料
2014/05/17 职场文书
2014大学辅导员工作总结
2014/12/02 职场文书
践行三严三实心得体会(2016推荐篇)
2016/01/06 职场文书
浅谈mysql返回Boolean类型的几种情况
2021/06/04 MySQL
OpenCV绘制圆端矩形的示例代码
2021/08/30 Python