python中利用Future对象回调别的函数示例代码


Posted in Python onSeptember 07, 2017

前言

本文主要给大家介绍了关于python中用Future对象回调别的函数的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。

Future对象也可以像协程一样,当它设置完成结果时,就可以立即进行回调别的函数

例子如下:

import asyncio 
import functools 
 
 
def callback(future, n): 
 print('{}: future done: {}'.format(n, future.result())) 
 
 
async def register_callbacks(all_done): 
 print('registering callbacks on future') 
 all_done.add_done_callback(functools.partial(callback, n=1)) 
 all_done.add_done_callback(functools.partial(callback, n=2)) 
 
 
async def main(all_done): 
 await register_callbacks(all_done) 
 print('setting result of future') 
 all_done.set_result('the result') 
 
 
event_loop = asyncio.get_event_loop() 
try: 
 all_done = asyncio.Future() 
 event_loop.run_until_complete(main(all_done)) 
finally: 
 event_loop.close()

输出结果如下:

registering callbacks on future
setting result of future
1: future done: the result
2: future done: the result

在这个例子里,先调用函数add_done_callback()来注册一个回调函数,由于只支持一个参数,使用functools.partial来作一个封装。当set_result()函数调用之后,就立即进行回调函数的运行。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Python 相关文章推荐
Python的Django框架安装全攻略
Jul 15 Python
Python二叉搜索树与双向链表转换实现方法
Apr 29 Python
Python的Asyncore异步Socket模块及实现端口转发的例子
Jun 14 Python
python通过百度地图API获取某地址的经纬度详解
Jan 28 Python
Python实现的连接mssql数据库操作示例
Aug 17 Python
查看python安装路径及pip安装的包列表及路径
Apr 03 Python
python如何实现代码检查
Jun 28 Python
Python assert语句的简单使用示例
Jul 28 Python
Django ORM 常用字段与不常用字段汇总
Aug 09 Python
基于python实现微信好友数据分析(简单)
Feb 16 Python
python要安装在哪个盘
Jun 15 Python
Python如何解决secure_filename对中文不支持问题
Jul 16 Python
Python标准库之itertools库的使用方法
Sep 07 #Python
在Python的一段程序中如何使用多次事件循环详解
Sep 07 #Python
教你学会使用Python正则表达式
Sep 07 #Python
Python基础学习之常见的内建函数整理
Sep 06 #Python
Python升级导致yum、pip报错的解决方法
Sep 06 #Python
Python实现求两个csv文件交集的方法
Sep 06 #Python
Python中的is和==比较两个对象的两种方法
Sep 06 #Python
You might like
全国FM电台频率大全 - 24 贵州省
2020/03/11 无线电
PHP无限分类的类
2007/01/02 PHP
php懒人函数 自动添加数据
2011/06/28 PHP
关于php连接mssql:pdo odbc sql server
2011/07/20 PHP
递归删除一个节点以及该节点下的所有节点示例
2014/03/19 PHP
PHP判断是否有Get参数的方法
2014/05/05 PHP
PHPCMS2008广告模板SQL注入漏洞修复
2016/10/11 PHP
PHP registerXPathNamespace()函数讲解
2019/02/03 PHP
jquery 入门教程 [翻译] 推荐
2009/08/17 Javascript
50款非常棒的 jQuery 插件分享
2012/03/29 Javascript
jquery ajax例子返回值详解
2012/09/11 Javascript
jquery 清空file域示例(兼容个浏览器)
2013/10/11 Javascript
js、jquery图片动画、动态切换示例代码
2014/06/03 Javascript
js获取当前页面的url网址信息
2014/06/12 Javascript
基于javascript代码检测访问网页的浏览器呈现引擎、平台、Windows操作系统、移动设备和游戏系统
2015/12/03 Javascript
jQuery对象的链式操作用法分析
2016/05/10 Javascript
JavaScript结合Bootstrap仿微信后台多图文界面管理
2016/07/22 Javascript
浅谈关于iview表单验证的问题
2018/09/29 Javascript
javascript移动端 电子书 翻页效果实现代码
2019/09/07 Javascript
Python3 使用cookiejar管理cookie的方法
2018/12/28 Python
基于Python实现拆分和合并GIF动态图
2019/10/22 Python
Python语言异常处理测试过程解析
2020/01/08 Python
django models里数据表插入数据id自增操作
2020/07/15 Python
如何利用python之wxpy模块玩转微信
2020/08/17 Python
Python爬虫教程知识点总结
2020/10/19 Python
Meli Melo官网:名媛们钟爱的英国奢侈手包品牌
2017/04/17 全球购物
电子信息科学专业自荐信
2014/01/30 职场文书
《黄河颂》教学反思
2014/02/07 职场文书
音乐教学随笔感言
2014/02/19 职场文书
给全校老师的建议书
2014/03/13 职场文书
领导班子四风问题个人对照检查材料
2014/10/04 职场文书
采购员岗位职责
2015/02/03 职场文书
北京青年观后感
2015/06/15 职场文书
四年级作文之说明文作文
2019/10/14 职场文书
Python学习之异常中的finally使用详解
2022/03/16 Python
Nginx配置之禁止指定IP访问
2022/05/02 Servers