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

yipeiwu_com6年前Python基础

本文实例讲述了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程序设计有所帮助。

相关文章

opencv3/python 鼠标响应操作详解

opencv3/python 鼠标响应操作详解

鼠标回调函数: def setMouseCallback( windowName, #窗口名称 onMouse, #鼠标响应处理函数 param=None)...

Sanic框架异常处理与中间件操作实例分析

本文实例讲述了Sanic框架异常处理与中间件操作。分享给大家供大家参考,具体如下: 简介 Sanic是一个类似Flask的Python 3.5+ Web服务器,它的写入速度非常快。除了F...

django fernet fields字段加密实践详解

一、fernet介绍 Fernet 用于django模型字段对称加密,使用 crytography 库。 官网帮助文档 1、先决条件 django-fernet-fields 支持D...

python 接口测试response返回数据对比的方法

背景:之前写的接口测试一直没有支持无限嵌套对比key,上次testerhome逛论坛,有人分享了他的框架,看了一下,有些地方不合适我这边自己修改了一下,部署在jenkins上跑完效果还不...

Python构建图像分类识别器的方法

机器学习用在图像识别是非常有趣的话题。 我们可以利用OpenCV强大的功能结合机器学习算法实现图像识别系统。 首先,输入若干图像,加入分类标记。利用向量量化方法将特征点进行聚类,并得出中...