将c eventhandler的优雅引入python
Events的Python项目详细描述
C语言提供了一种声明、订阅和触发事件的简便方法。 从技术上讲,事件是回调函数(事件处理程序)可以 附加到-称为订阅事件的进程。这是 一个方便的包,它封装了核心到事件的订阅和事件 开火,感觉像是语言的“自然”部分。
>>> defsomething_changed(reason):... print"something changed because %s"%reason...>>> fromeventsimportEvents>>> events=Events()>>> events.on_change+=something_changed
多个回调函数可以订阅同一事件。当事件是 触发后,将按顺序调用所有附加的事件处理程序。为了启动这个活动, 在插槽上执行呼叫:
>>> events.on_change('it had to happen')'something changed because it had to happen'
默认情况下,事件不检查是否可以订阅和触发事件。 可以通过子类化事件并将其列出来预定义事件。试图 订阅或触发未定义的事件将引发EventsException。
>>> classMyEvents(Events):... __events__=('on_this','on_that',)>>> events=MyEvents() # this will raise an EventsException as `on_change` is unknown to MyEvents: >>> events.on_change+=something_changed
还可以通过将迭代器传递给构造函数来预定义单个事件实例的事件。
>>> events=Events(('on_this','on_that')) # this will raise an EventsException as `on_change` is unknown to events: >>> events.on_change+=something_changed
文档
安装
事件在pypi上,因此您只需执行以下操作:
pip install events
测试
只需运行:
python setup.py test
或者在所有支持的Python:2.6、2.7、3.3、3.4、3.5和3.6的情况下使用tox测试包装。
许可证
事件是bsd许可的。有关详细信息,请参见LICENSE。
归因
基于Zoran Isailovski的优秀配方,版权所有(c)2005。