python語言事件驅動編程監聽器的例子
以下是一個使用監聽器的簡單事件驅動編程的例子:
# 定義一個事件監聽器
class EventListener:
def __init__(self):
self.handlers = {}
def add_handler(self, event_type, handler):
if event_type not in self.handlers:
self.handlers[event_type] = []
self.handlers[event_type].append(handler)
def remove_handler(self, event_type, handler):
if event_type in self.handlers and handler in self.handlers[event_type]:
self.handlers[event_type].remove(handler)
def fire_event(self, event_type, data=None):
if event_type in self.handlers:
for handler in self.handlers[event_type]:
handler(data)
# 定義事件處理函數
def on_event(data):
print("事件觸發,數據為:", data)
# 創建一個監聽器對象
listener = EventListener()
# 添加事件處理函數到監聽器中
listener.add_handler("event", on_event)
# 觸發事件
listener.fire_event("event", {"foo": "bar"})
# 移除事件處理函數
listener.remove_handler("event", on_event)
上述代碼定義了一個 EventListener 類,該類用於管理事件監聽器。 EventListener 類有三個方法:
add_handler(event_type, handler):用於添加事件處理函數到監聽器中,event_type是事件的類型,handler是事件處理函數。remove_handler(event_type, handler):用於從監聽器中移除事件處理函數,event_type是事件的類型,handler是事件處理函數。fire_event(event_type, data=None):用於觸發事件,event_type是事件的類型,data是事件數據。
上述代碼還定義了一個事件處理函數 on_event,該函數會在事件觸發時被調用。最後,代碼創建了一個 EventListener 對象,添加事件處理函數到監聽器中,觸發事件,然後移除事件處理函數。當事件觸發時,事件處理函數 on_event 會被調用,並打印出事件數據
原文地址: https://www.cveoy.top/t/topic/fjow 著作权归作者所有。请勿转载和采集!