Python实现华丽回调
来源:互联网 发布:linux命令查看磁盘空间 编辑:程序博客网 时间:2024/05/17 20:29
# _*_ coding: utf-8 _*_class CallbackBase: def __init__(self): self.__callbackMap = {} for k in (getattr(self, x) for x in dir(self)): if hasattr(k, "bind_to_event"): self.__callbackMap.setdefault(k.bind_to_event, []).append(k) elif hasattr(k, "bind_to_event_list"): for j in k.bind_to_event_list: self.__callbackMap.setdefault(j, []).append(k) @staticmethod def callback(event): def f(g, ev=event): g.bind_to_event = ev return g return f @staticmethod def callbacklist(eventlist): def f(g, evl=eventlist): g.bind_to_event_list = evl return g return f def dispatch(self, event): l = self.__callbackMap[event] f = lambda *args, **kargs: \ map(lambda x: x(*args, **kargs), l) return fclass MyClass(CallbackBase): EVENT1 = 1 EVENT2 = 2 @CallbackBase.callback(EVENT1) def handler1(self, param=None): return None @CallbackBase.callbacklist([EVENT1, EVENT2]) def handler2(self, param=None): print("handler2 with param: %s" % str(param)) return None def run(self, event, param=None): self.dispatch(event)(param)if __name__ == "__main__": a = MyClass() a.run(MyClass.EVENT1, 'mandarina') a.run(MyClass.EVENT2, 'naranja')
阅读全文
0 0
- Python实现华丽回调
- 实现一个网页特效 华丽丽的
- 做好几点实现华丽蜕变
- 低调的华丽:从服务器开发的角度认识 asp.net 中的回调技术
- 这个冬天,他们实现了梦想中的华丽转身…
- 情人节 3d 玫瑰javascript 代码实现 效果很华丽
- 如何使用ckeditor控件实现华丽的富文本呢?
- ExtJS之实现华丽的皮肤主题更换
- SEO日暮途穷?做好几点实现华丽蜕变
- SEO日暮途穷?做好几点实现华丽蜕变
- Python实现Event回调机制
- CSS3无图片实现华丽折页菜单效果(多浏览器兼容)
- 继承ViewFlipper实现左右滑动展示以及下面华丽的点点点
- 哥决定不再沉默,哥要实现低调而华丽的转变
- 四. 200多万元得到的创业教训--3招实现外包的华丽转身
- Android 5.0新特性,共享元素及RevealAnimator实现华丽的详情页面
- js+CSS实现模拟华丽的select控件下拉菜单效果
- 华丽的三角法
- 进程间通信--消息队列
- 如何使用dd备份数据文件头部和ASM磁盘头部
- grep 在文本中的使用
- tomcat jdb动态调试
- PHP和JS判断来源是http请求还是https请求
- Python实现华丽回调
- FlowNet 2.0: Evolution of Optical Flow Estimation with Deep Networks
- Javascript排序算法(冒泡排序,选择排序,插入排序,归并排序,快速排序)
- 问问自己
- java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener错误解决方案
- 关于Java的正则表达式
- Office 365 IT Professional——Planner
- 关于集合
- java mkdir()和mkdirs()区别