python如何实现callback
来源:互联网 发布:c语言把字符a变成字符b 编辑:程序博客网 时间:2024/06/15 12:32
我用了一个python动态加载模块的方法,做了一个callback。也可以改写为加载多个插件。不多说 上代码
# coding:utf-8import os, os.path, sys'''callbackTest.py'''class MyApp: _callbackList = [] def __init__(self): # scriptDir = os.path.join ( os.path.dirname(os.path.abspath(__file__)), "plugin" ) callbackDir = "XXXX/callback" #绝对路径 print callbackDir# 将模块路径加到当前模块扫描的路径里 sys.path.insert(0, callbackDir) for plug in os.listdir(callbackDir):# print "plug: ",plug[-3:] if (plug[-3:].lower() == ".py"): print "__import__ ", os.path.basename(plug)[:-3] m = __import__(os.path.basename(plug)[:-3]) #这里是关键步骤,动态import类 self._callbackList.append(m.CallbackModule()) def updateData(self): self.runStart() print "更新数据" self.runEnd() def runStart(self): for p in self._callbackList: p.start() def runEnd(self): for p in self._callbackList: p.end()if (__name__ == "__main__"): app = MyApp() app.updateData()
下面是callback目录中的两个例子
第一个例子,在方法执行前后打印日志
# coding:utf-8'''log.py'''class CallbackModule(object): def start(self): print "log函数开始前调用该方法: ", "记录开始更新数据" def end(self): print "log函数结束后调用该方法: ", "记录更新完毕"
第二个例子
# coding:utf-8'''progress.py'''import datetimeclass CallbackModule(object): today = datetime.datetime.now() def start(self): print "progress函数开始前调用该方法: ", datetime.datetime.strftime(self.today, '%Y-%m-%d %H:%M:%S') def end(self): print "progress函数结束后调用该方法: ", datetime.datetime.strftime(self.today, '%Y-%m-%d %H:%M:%S')
0 0
- python如何实现callback
- Callback 实现
- python-callback的理解
- 简单callback实现
- 简单callback实现 注解
- callback 实现机制
- c++实现Callback机制
- jQuery 之 Callback 实现
- jQuery 之 Callback 实现
- jQuery 之 Callback 实现
- python中__name__和callback
- callback回调函数--python
- callback回调函数 python
- python如何实现清屏
- C#,CallBack实现进度条演示
- matlab GUI callback 函数实现
- Java中实现CallBack功能
- 用 Asterisk 实现CallBack功能
- foreach遍历的实质
- ios开发的建议学习
- C Primer Plus4-1
- HashMap解决hash冲突的方法
- 【第六章】 AOP 之 6.9 代理机制 ——跟我学spring3
- python如何实现callback
- Java把Html格式文本转换成纯文本的问题
- 2016年新计划
- C Primer Plus4-2
- 尝试《Java Network Programming 4ed》的部分翻译
- 刨根问底Objective-C Runtime(唐巧)
- oracle数据库相关
- C Primer Plus4-3
- 机器学习-决策树