Python 实现带取消注册功能的发布 - 订阅模式:EventEmitter 与 Listener 类详解
以下是使用 Python 实现的简单发布-订阅模式: ```python class Listener: def __init__(self, name): self.name = name def handle(self, event_data): print(f"{self.name} 收到事件: {event_data}") 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, event_data): if event_name in self.listeners: for listener in self.listeners[event_name]: listener.handle(event_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("Listener 1") listener2 = Listener("Listener 2") emitter.on("event1", listener1) emitter.on("event1", listener2) emitter.emit("event1", "Some data") emitter.off("event1", listener1) emitter.emit("event1", "More data") ``` ######[AI写代码神器 | 316点数解答 | 2024-11-09 00:54:20]
- Python 实现简易密码设置系统:多种功能交互与安全要点揭秘(字节豆包 | 286点数解答 | 2025-03-28 10:43:21)374
- C语言实现多功能密码设置系统:含代码及安全注意要点(字节豆包 | 414点数解答 | 2025-03-28 10:43:55)360
- C 语言实现:超简单密码设置系统,含代码与注意要点!(字节豆包 | 519点数解答 | 2025-03-28 12:42:02)398
- C语言实现密码管理系统:含功能代码与安全注意事项(字节豆包 | 409点数解答 | 2025-04-05 18:09:56)347
- C语言实现多功能密码系统:初始化、确认、设置、显示、重置与退出(字节豆包 | 454点数解答 | 2025-04-05 18:48:42)346
- C语言实现密码管理系统:含初始化、确认、设置、显示、重置及退出功能(字节豆包 | 413点数解答 | 2025-04-06 15:37:16)292
- C 语言实现密码管理系统:含初始化、确认、设置、显示、重置及退出功能(字节豆包 | 403点数解答 | 2025-04-06 15:37:54)306
- Python 实现支持多监听器与取消注册的发布 - 订阅模式(字节豆包 | 338点数解答 | 2024-11-08 10:26:15)145
- JS 巧实现发布 - 订阅模式:EventEmitter 与 Listener 类全解析(字节豆包 | 301点数解答 | 2024-11-08 10:26:43)252
- JS 实现发布 - 订阅模式:EventEmitter 与 Listener 类详解(讯飞星火 | 465点数解答 | 2024-11-08 10:27:23)119
- Python 实现:EventEmitter 与 Listener 构建简单发布 - 订阅模式 (字节豆包 | 215点数解答 | 2024-11-08 22:20:55)149
- JavaScript 实现:EventEmitter 与 Listener 构建简单发布 - 订阅模式(字节豆包 | 209点数解答 | 2024-11-08 22:33:35)143