python 单线程发布订阅通信 blinker

发布者

from blinker import signal, Signal
from first import subscriber

# 创建一个Signal,其名为test
test = signal('test')

# 创建一个方法singal_sender,内部包含两个发送者
def singal_sender():
    # 发送者test1
    test.send('test1', data1=1)
    # 发送者test2
    test.send('test2', data2=2)
    print('singal_sender()执行完毕')


singal_sender()

订阅者

from blinker import signal, Signal

# 创建一个Signal,其名为test
test = signal('test')

# 订阅者,指定接收test1
@test.connect_via('test1')
def subscriber(sender, **kwargs):
    print(sender, kwargs)
    print("指定接收test1")


# 订阅者,指定接收test2
@test.connect_via('test2')
def subscriber(sender, **kwargs):
    print(sender, kwargs)


@test.connect
def subscriber(sender, **kwargs):
    """
    订阅者, 不指定接受者
    """
    print(sender, kwargs)
    print("all !!!!!!!!!!!\n")

是的,Python中的Blinker库是一个用于实现事件、信号和观察者模式的库。它提供了一种简单而灵活的方式来处理事件和信号的发布与订阅。您可以使用Blinker库来创建自定义事件或使用现有的事件,以便在应用程序中触发和监听这些事件。 要使用Blinker库,您需要首先安装它。可以使用pip工具运行以下命令进行安装: ``` pip install blinker ``` 一旦安装完成,您就可以在代码中导入blinker模块并开始使用它。您可以创建一个信号对象并连接相应的监听器函数来处理该信号的触发。以下是一个简单的示例: ```python from blinker import signal # 创建一个新的信号对象 my_signal = signal('my_signal') # 定义一个监听器函数 def handle_my_signal(sender): print(f"Received signal from: {sender}") # 连接监听器函数到信号 my_signal.connect(handle_my_signal) # 触发信号 my_signal.send('example_sender') ``` 在这个例子中,我们创建了一个名为`my_signal`的信号对象,并定义了一个名为`handle_my_signal`的监听器函数。然后,我们将这个监听器函数连接到信号上,并通过调用`send`方法来触发信号。当信号被触发时,与之连接的监听器函数将被调用,并传递一个发送者参数。 使用Blinker库,您可以在应用程序中实现更复杂的事件和信号处理逻辑。请查阅Blinker官方文档,以了解更多关于该库的详细信息和用法示例。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值