使用decorators处理python事件
Decovent的Python项目详细描述
decovent是一个小的python库,它允许 和优雅的事件上升和处理,使用装饰。
- New in this version:
- Private methods have been made public to facilitate inheritance
基本示例:
^{tt1}$^{tt2}$^{tt3}$^{tt4}$^{tt5}$^{tt6}$^{tt7}$^{tt8}$^{tt9}$^{tt10}$^{tt11}$^{tt7}$^{tt13}$^{tt14}$^{tt15}$^{tt16}$
- 功能:
- decovent已经用python的两个生产版本进行了测试, Python2.6.4和Python3.1.1
- 事件和处理程序绑定到本地线程
- 事件名称区分大小写,Unicode安全,如果是 等于修饰的方法名
- 对于一个事件,可以根据需要注册尽可能多的处理程序
- 为(类、事件)对注册处理程序,以区分 名称相似但由不同类引发的事件
- 处理程序可以注册多次,但只能执行一次 对于(类,事件)对
- 处理程序执行顺序与注册顺序相同
- 处理程序总是在并行线程中执行,同步或 异步
- 处理程序接收到的参数由事件发送
- 注册时处理程序不需要参数
- 可以将处理程序标记为只对事件运行一次,然后取消注册 本身
- @类方法可以作为事件引发或注册为处理程序
- 事件和处理程序可以在本地或全局级别进行记录
- 事件和处理程序可以在同一个锁上同步
- 为执行事件或处理程序分配的时间是可控的
- 可以并行执行的方法的数量是可控的
- 限制:
- 事件和处理程序必须是属于新样式类的方法
- @staticmethods不能作为事件引发或注册为处理程序
- 一个处理程序只能为一个事件注册
重要的是要理解事件和处理程序不是类而是 可能属于任何新样式类的修饰方法。没有 类本身对继承或接口的限制 已经实施。
有关功能的完整列表,请参阅文档: http://packages.python.org/Decovent