酷代码 AI
菜单
服务商
DeepSeek字节豆包讯飞星火
更多选项

Python 实现支持多监听器与取消注册的发布 - 订阅模式

以下是使用 Python 实现的简单的发布-订阅模式: ```python # 定义监听器类 Listener class Listener: def __init__(self, name): self.name = name def handle(self, data): print(f"{self.name} 收到消息: {data}") # 定义事件发射器类 EventEmitter class EventEmitter: def __init__(self): self.listeners = {} def on(self, event_name, listener): if event_name not in self.listeners: self.listeners[event_name] = [] self.listeners[event_name].append(listener) def emit(self, event_name, data): if event_name in self.listeners: for listener in self.listeners[event_name]: listener.handle(data) def off(self, event_name, listener): if event_name in self.listeners: self.listeners[event_name] = [l for l in self.listeners[event_name] if l!= listener] ``` 以下是使用示例: ```python emitter = EventEmitter() listener1 = Listener("监听器 1") listener2 = Listener("监听器 2") emitter.on("event1", listener1) emitter.on("event1", listener2) emitter.emit("event1", "这是一个消息") emitter.off("event1", listener1) emitter.emit("event1", "另一个消息") ``` ######[AI写代码神器 | 338点数解答 | 2024-11-08 10:26:15]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]