专栏首页sktjpython 函数回调

python 函数回调

回调函数

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) Got: helloworld

协程处理回调

还有另外一个更高级的方法,可以使用协程来完成同样的事情:

def make_handler(): sequence = 0 while True: result = yield sequence += 1 print('[{}] Got: {}'.format(sequence, result)) 对于协程,你需要使用它的 send() 方法作为回调函数,如下所示:

handler = make_handler() next(handler) # Advance to the yield apply_async(add, (2, 3), callback=handler.send) [1] Got: 5 apply_async(add, ('hello', 'world'), callback=handler.send) [2] Got: helloworld

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • IOS Alamofire使用Post获取数据

    用户5760343
  • IOS Alamofire使用get获取数据

    用户5760343
  • python 嗅探用户对于google的查询

    def findGoogle(pkt): if pkt.haslayer(Raw): payload = pkt.getlayer(Raw).load i...

    用户5760343
  • 调试工具类

    import java.io.*; import java.util.*; import java.text.*; import java.lang.refle...

    源哥
  • MySQL(十五)DDL之常见的约束

    leeqico
  • Go 语言 Web 编程系列(四)—— 基于 gorilla/mux 包实现路由定义:基本使用篇

    前面我们介绍了 Go 官方标准库 net/http 自带的 DefaultServeMux 底层实现,通过 DefaultServeMux 提供的路由处理器虽然...

    学院君
  • mysql临时表的用法

    当处理较复杂大的逻辑时,你可能偶尔需要运行很多查询获得一个大量数据的小的子集,不是对整个表运行这些查询,而是让MySQL每次找出所需的少数记录,将记录存到一个临...

    仙士可
  • Django 学习笔记之使用旧数据库

    如果你按照顺序,从第一篇文章读到本文。恭喜你,你已经将 Django 大部分基础知识掌握了。后续的文章是在之前的基础上添砖加瓦或常用的应用。本文将的内容是一个场...

    猴哥yuri
  • 5G牌照发放,智能互连时代开启

    2019年6月10日,工信部向中国电信、中国移动、中国联通、中国广电正式发放5G商用牌照。这是全球5G发展的标志性事件——中国5G时代正式开启。

    用户5860209
  • 5G牌照发放,智能互连时代开启

    2019年6月10日,工信部向中国电信、中国移动、中国联通、中国广电正式发放5G商用牌照。这是全球5G发展的标志性事件——中国5G时代正式开启。

    用户5860209

扫码关注云+社区

领取腾讯云代金券