【文件属性】:
文件名称:带额外状态信息的回调函数-华为云大数据中台架构分享
文件大小:5.68MB
文件格式:PDF
更新时间:2021-06-11 11:13:56
Python cookbook 中文 参考
7.10 带额外状态信息的回调函数
问题
你的代码中需要依赖到回调函数的使用(比如事件处理器、等待后台任务完成后
的回调等), 并且你还需要让回调函数拥有额外的状态值,以便在它的内部使
用到。
解决方案
这一小节主要讨论的是那些出现在很多函数库和框架中的回调函数的使用——
特别是跟异步处理有关的。 为了演示与测试,我们先定义如下一个需要调用回
调函数的函数:
def apply_async(func, args, *, callback):
# Compute the result
result = func(*args)
# Invoke the callback with the result
callback(result)
实际上,这段代码可以做任何更高级的处理,包括线程、进程和定时器,但是
这些都不是我们要关心的。 我们仅仅只需要关注回调函数的调用。下面是一个
演示怎样使用上述代码的例子:
>>> def print_result(result):
... print('Got:', result)
...
>>> def add(x, y):
... return x + y
...
>>> apply_async(add, (2, 3), callback=print_result)
Got: 5
>>> apply_async(add, ('hello', 'world'),
callback=print_result)