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 相关文章推荐
Tornado Web服务器多进程启动的2个方法
Aug 04 Python
Python之py2exe打包工具详解
Jun 14 Python
Python内置random模块生成随机数的方法
May 31 Python
Python识别快递条形码及Tesseract-OCR使用详解
Jul 15 Python
pandas的to_datetime时间转换使用及学习心得
Aug 11 Python
Python pandas实现excel工作表合并功能详解
Aug 29 Python
Python读取JSON数据操作实例解析
May 18 Python
Python基于wordcloud及jieba实现中国地图词云图
Jun 09 Python
PyQt5的相对布局管理的实现
Aug 07 Python
tensorflow与numpy的版本兼容性问题的解决
Jan 08 Python
pycharm Tab键设置成4个空格的操作
Feb 26 Python
python glom模块的使用简介
Apr 13 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
PHP5 安装方法
2007/01/15 PHP
PHP MSSQL 存储过程的方法
2008/12/24 PHP
php中memcache 基本操作实例
2015/05/17 PHP
如何使用php实现评委评分器
2015/07/31 PHP
PHP设计模式(八)装饰器模式Decorator实例详解【结构型】
2020/05/02 PHP
通过代码实例解析PHP session工作原理
2020/12/11 PHP
Javascript 遍历对象中的子对象
2009/07/03 Javascript
日期处理的js库(迷你版)--自建js库总结
2011/11/21 Javascript
判断滚动条到底部的JS代码
2013/11/04 Javascript
Jquery getJSON方法详细分析
2013/12/26 Javascript
jQuery的deferred对象详解
2014/11/12 Javascript
基于JQuery打造无缝滚动新闻步骤详解
2016/03/31 Javascript
关于数据与后端进行交流匹配(点亮星星)
2016/08/03 Javascript
request请求获取参数的实现方法(post和get两种方式)
2016/09/27 Javascript
基于javascript实现的快速排序
2016/12/02 Javascript
原生Javascript插件开发实践
2017/01/18 Javascript
canvas绘制的直线动画
2017/01/23 Javascript
总结js中的一些兼容性易错的问题
2017/12/18 Javascript
使用vue打包时vendor文件过大或者是app.js文件很大的问题
2018/06/29 Javascript
vue-cli3全面配置详解
2018/11/14 Javascript
JS立即执行函数功能与用法分析
2019/01/15 Javascript
JS中call()和apply()的功能及用法实例分析
2019/06/28 Javascript
java实现单链表增删改查的实例代码详解
2019/08/30 Javascript
[01:23]一分钟告诉你 DOTA2为什么叫信仰2
2014/06/20 DOTA
[52:14]VG vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
python命名空间(namespace)简单介绍
2019/08/10 Python
Python字符串中添加、插入特定字符的方法
2019/09/10 Python
python3 写一个WAV音频文件播放器的代码
2019/09/27 Python
解决pyCharm中 module 调用失败的问题
2020/02/12 Python
基于Python的一个自动录入表格的小程序
2020/08/05 Python
Jupyter Notebook 安装配置与使用详解
2021/01/06 Python
CSS3弹性盒模型开发笔记(一)
2016/04/26 HTML / CSS
Bed Bath & Beyond加拿大官网:购买床上用品、浴巾、厨房电器等
2019/10/04 全球购物
Servlet都有哪些方法?主要作用是什么?
2014/03/04 面试题
酒店应聘自荐信
2013/11/09 职场文书
大学生学习党课思想汇报
2014/01/03 职场文书