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 稀疏矩阵-sparse 存储和转换
May 27 Python
Python基于回溯法子集树模板解决取物搭配问题实例
Sep 02 Python
基于python中staticmethod和classmethod的区别(详解)
Oct 24 Python
django定期执行任务(实例讲解)
Nov 03 Python
Python实现matplotlib显示中文的方法详解
Feb 06 Python
Python numpy 提取矩阵的某一行或某一列的实例
Apr 03 Python
解决Tensorflow使用pip安装后没有model目录的问题
Jun 13 Python
python脚本当作Linux中的服务启动实现方法
Jun 28 Python
Python中请不要再用re.compile了
Jun 30 Python
Python queue队列原理与应用案例分析
Sep 27 Python
Python+Kepler.gl轻松制作酷炫路径动画的实现示例
Jun 02 Python
python语言的优势是什么
Jun 17 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
php学习笔记 数组遍历实现代码
2011/06/09 PHP
PHP图片裁剪函数(保持图像不变形)
2014/05/04 PHP
php下pdo的mysql事务处理用法实例
2014/12/27 PHP
PHP制作百度词典查词采集器
2015/01/29 PHP
PHP基于socket实现客户端和服务端通讯功能
2017/07/13 PHP
超酷的网页音乐播放器DewPlayer使用方法
2010/12/18 Javascript
使用时间戳解决ie缓存的问题
2014/08/20 Javascript
javascript委托(Delegate)blur和focus用法实例分析
2015/05/26 Javascript
JavaScript对HTML DOM使用EventListener进行操作
2015/10/21 Javascript
EasyUI创建对话框的两种方式
2016/08/23 Javascript
深入理解AngularJS中的ng-bind-html指令和$sce服务
2016/09/08 Javascript
AngularJS指令与指令之间的交互功能示例
2016/12/14 Javascript
svg动画之动态描边效果
2017/02/22 Javascript
JS监控关闭浏览器操作的实例详解
2017/09/12 Javascript
JS实现带导航城市列表以及输入搜索功能
2018/01/04 Javascript
详解如何在vue项目中使用lodop打印插件
2018/09/27 Javascript
nodejs中函数的调用实例详解
2018/10/31 NodeJs
JavaScript继承与聚合实例详解
2019/01/22 Javascript
微信公众号平台接口开发 获取微信服务器IP地址方法解析
2019/08/14 Javascript
vue实现评价星星功能
2020/06/30 Javascript
vue使用swiper实现左右滑动切换图片
2020/10/16 Javascript
Python 异常处理实例详解
2014/03/12 Python
简单掌握Python中glob模块查找文件路径的用法
2016/07/05 Python
用python编写第一个IDA插件的实例
2018/05/29 Python
3种python调用其他脚本的方法
2020/01/06 Python
python字符串的index和find的区别详解
2020/06/20 Python
CSS3实现多背景模拟动态边框的效果
2016/11/08 HTML / CSS
英国最全面的橄榄球联盟门票网站:Live Rugby Tickets
2018/10/06 全球购物
FC-Moto瑞典:欧洲最大的摩托车服装和头盔商店之一
2018/11/27 全球购物
俄罗斯金苹果网上化妆品和香水商店:Goldapple
2019/12/01 全球购物
群众路线问题查摆对照检查材料
2014/10/04 职场文书
钱塘江大潮导游词
2015/02/03 职场文书
浅谈移动端中的视口(viewport)的具体使用
2021/04/13 HTML / CSS
python 自动刷新网页的两种方法
2021/04/20 Python
go语言求任意类型切片的长度操作
2021/04/26 Golang
关于对TypeScript泛型参数的默认值理解
2022/07/15 Javascript