一对一事件的信号

slinker的Python项目详细描述


slinker提供一个一对一事件,我们称之为link

link只能有一个发送者和一个接收者。

源代码位于github

Build Status

简介

链路接收器可以订阅特定的链路。需要接收函数 一个发送者参数和一个可选的keyworld参数。

>>> from slinker import Namespace
>>> links = Namespace()
>>> started = links.link('round-started')
>>> def each(round):
...     print "Round %s!" % round
...
>>> started.connect(each)
>>> for round in range(1, 4):
...     started.send(round)
...
Round 1!
Round 2!
Round 3!

这里提供一个装饰符receiver,可以用于connect。因为A 链接只能有一个接收器。如果你想连接到另一个接收器, 你必须把原来的接收器断开。

>>> started.disconnect(each)
>>> from slinker import receiver
>>> @receiver(started)
    def test(sender, **kwargs):
...     return sender
>>> func, result = started.send('hello')
>>> func == test
... True
>>> result == 'hello'
...  True

更多示例

请参阅tests目录。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何使用从PreparedStatement返回的RowId。getGeneratedKeys()?   selenium chrome驱动程序中下一个网站url的java空白页   java如何将参数化匿名类转换为lambda?   java JUnit在AfterClass上获取测试结果   java将动态XML/JSON内容与静态标记化负载进行比较,并检索标记值   java共享一个需要数据持久性的项目[数据库]   java在调用方法时获取意外的参数类型。getParameterTypes()   java如何用jdbc在swing中用另一个字段替换外键?   需要java Jersey Tomcat CDI依赖项解释   java如何生成UML图   java如何编写Jersey rest服务可以通过给定的spring代码访问   SpringMaven存储库管理器Nexus与Java依赖项的Artifactory   java将包从另一个项目导入eclipse中的当前项目   加密Java使用密码加密文件