一对一事件的信号
slinker的Python项目详细描述
slinker提供一个一对一事件,我们称之为link。
link只能有一个发送者和一个接收者。
源代码位于github。
简介
链路接收器可以订阅特定的链路。需要接收函数 一个发送者参数和一个可选的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目录。