以下是一個使用監聽器的簡單事件驅動編程的例子:

# 定義一個事件監聽器
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 會被調用,並打印出事件數據

python語言事件驅動編程監聽器的例子

原文地址: https://www.cveoy.top/t/topic/fjow 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录