欢迎访问宙启技术站
智能推送

使用CallbackList()创建一个简单的回调函数列表

发布时间:2023-12-31 17:57:30

CallbackList()是Python的一个函数,它可以用来创建一个简单的回调函数列表。回调函数是一种常见的编程概念,它允许我们在某些事件发生时调用预定义的函数。使用回调函数列表可以更方便地管理和调用多个回调函数。

下面是一个使用CallbackList()创建回调函数列表的示例:

from types import FunctionType
from typing import List

def CallbackList() -> List[FunctionType]:
    return []

def add_callback(callback_list: List[FunctionType], callback: FunctionType):
    callback_list.append(callback)

def remove_callback(callback_list: List[FunctionType], callback: FunctionType):
    callback_list.remove(callback)

def trigger_callbacks(callback_list: List[FunctionType]):
    for callback in callback_list:
        callback()

# 示例回调函数
def callback1():
    print("Callback 1 called")

def callback2():
    print("Callback 2 called")

# 创建一个回调函数列表
callbacks = CallbackList()

# 添加回调函数
add_callback(callbacks, callback1)
add_callback(callbacks, callback2)

# 触发所有回调函数
trigger_callbacks(callbacks)

# 移除一个回调函数
remove_callback(callbacks, callback1)

# 再次触发所有回调函数
trigger_callbacks(callbacks)

在上面的示例中,我们通过调用CallbackList()函数创建了一个空的回调函数列表。然后,我们定义了三个函数:add_callback()用于添加回调函数到列表中,remove_callback()用于从列表中移除回调函数,trigger_callbacks()用于触发所有回调函数。

接下来,我们定义了两个示例的回调函数callback1()和callback2()。我们将这两个回调函数添加到callbacks列表中,然后通过调用trigger_callbacks()函数来触发它们。

在 次调用trigger_callbacks()之后,输出为:

Callback 1 called
Callback 2 called

然后,我们通过调用remove_callback()函数从callbacks列表中移除了callback1()回调函数。最后,我们再次调用trigger_callbacks()函数来触发剩下的回调函数。

在第二次调用trigger_callbacks()之后,输出为:

Callback 2 called

可以看到,只剩下callback2()回调函数被调用了。

这个例子展示了如何使用CallbackList()创建一个简单的回调函数列表,并且演示了如何添加、移除和触发回调函数。回调函数列表可以用于各种场景,例如事件处理、消息订阅等。我们可以根据具体的需求,自定义回调函数的逻辑和实现。