一对一事件的信号

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 Github操作在生成期间未识别机密值   java根据给定的索引号选择适当的字符。开关语句   java如何在我的项目中使用SCA mvn插件在Fortify SCA扫描中仅包含一个文件夹?   java SwingWorker无法完成   使用KeyBindings Java在按住键时摆动停止暂停   java如何从sqlite数据库获取数据   java如何使用windows批处理文件逐个启动spring引导jar文件?   在Java中,字典是在构造函数中初始化映射的更好方法   用于在Java中创建2D形状的swing高级API   JavaSwing:制作一个可滚动的JPanel列表   引用泛型类中枚举成员的c#语法   java Doc4j:由于元素类型不同,比较两个文档失败   java如何优化绘制这些标记?