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使用scrapy采集数据过程中放回下载过大页面的方法
Apr 08 Python
python实现RSA加密(解密)算法
Feb 17 Python
Python学生信息管理系统修改版
Mar 13 Python
查看TensorFlow checkpoint文件中的变量名和对应值方法
Jun 14 Python
详解flask入门模板引擎
Jul 18 Python
python正则表达式去除两个特殊字符间的内容方法
Dec 24 Python
Python+OpenCV感兴趣区域ROI提取方法
Jan 10 Python
python实现微信防撤回神器
Apr 29 Python
Python collections模块使用方法详解
Aug 28 Python
Python上下文管理器全实例详解
Nov 12 Python
Python如何实现小程序 无限求和平均
Feb 18 Python
解决windows上安装tensorflow时报错,“DLL load failed: 找不到指定的模块”的问题
May 20 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
ThinkPHP3.1新特性之字段合法性检测详解
2014/06/19 PHP
php结合ajax实现手机发红包的案例
2016/10/13 PHP
js 函数的执行环境和作用域链的深入解析
2009/11/01 Javascript
javascript offsetX与layerX区别
2010/03/12 Javascript
js 通用javascript函数库整理
2011/08/14 Javascript
jquery实现固定顶部导航效果(仿蘑菇街)
2013/03/21 Javascript
鼠标移到导航当前位置的LI变色处于选中状态
2013/08/23 Javascript
jQuery中Dom的基本操作小结
2014/01/23 Javascript
javascript调试之DOM断点调试法使用技巧分享
2014/04/15 Javascript
javascript匀速运动实现方法分析
2016/01/08 Javascript
简单谈谈Javascript函数中的arguments
2017/02/09 Javascript
nodejs中模块定义实例详解
2017/03/18 NodeJs
Node.js应用设置安全的沙箱环境
2018/04/23 Javascript
详解Vue项目编译后部署在非网站根目录的解决方案
2018/04/26 Javascript
详解vue添加删除元素的方法
2018/06/30 Javascript
JS如何监听div的resize事件详解
2020/12/03 Javascript
[01:34]DOTA2 7.22版本新增神杖效果一览(敏捷英雄篇)
2019/05/28 DOTA
python插入排序算法实例分析
2015/07/03 Python
Django自定义认证方式用法示例
2017/06/23 Python
利用Python2下载单张图片与爬取网页图片实例代码
2017/12/25 Python
pytorch之ImageFolder使用详解
2020/01/06 Python
Python Unittest原理及基本使用方法
2020/11/06 Python
python中操作文件的模块的方法总结
2021/02/04 Python
CSS3中的5个有趣的新技术
2009/04/02 HTML / CSS
CSS3实现头像旋转效果
2017/03/13 HTML / CSS
浅谈HTML5 Web Worker的使用
2018/01/05 HTML / CSS
html5 postMessage前端跨域并前端监听的方法示例
2018/11/01 HTML / CSS
俄罗斯街头服装品牌:Black Star Wear
2017/03/01 全球购物
阿迪达斯法国官方网站:adidas法国
2018/03/20 全球购物
酒店开业策划方案
2014/06/02 职场文书
领导干部四风问题自我剖析材料
2014/09/25 职场文书
国际残疾人日广播稿范文
2014/10/09 职场文书
弘扬焦裕禄精神践行三严三实心得体会
2014/10/13 职场文书
2015年大学宣传部工作总结
2015/05/26 职场文书
读《解忧杂货店》有感:请相信一切都是最好的安排
2019/11/07 职场文书
Go标准容器之Ring的使用说明
2021/05/05 Golang