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标准库内置函数complex介绍
Nov 25 Python
详解python 发送邮件实例代码
Dec 22 Python
python 输出上个月的月末日期实例
Apr 11 Python
python线程池threadpool实现篇
Apr 27 Python
Python编程快速上手——Excel到CSV的转换程序案例分析
Feb 28 Python
python实现提取COCO,VOC数据集中特定的类
Mar 10 Python
Python3 ID3决策树判断申请贷款是否成功的实现代码
May 21 Python
在pycharm中关掉ipython console/PyDev操作
Jun 09 Python
Python3爬虫中关于中文分词的详解
Jul 29 Python
如何在Python3中使用telnetlib模块连接网络设备
Sep 21 Python
Python开发.exe小工具的详细步骤
Jan 27 Python
python可视化分析绘制带趋势线的散点图和边缘直方图
Jun 25 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-cli简介(不会Shell语言一样用Shell)
2013/06/03 PHP
php生成静态页面的简单示例
2014/04/17 PHP
php简单计算权重的方法示例【适合抽奖类应用】
2019/06/10 PHP
javascript 选择文件夹对话框(web)
2009/07/07 Javascript
ExtJs GridPanel简单的增删改实现代码
2010/08/26 Javascript
禁止空格提交表单的js代码
2013/11/17 Javascript
js 自动播放的实例代码
2013/11/19 Javascript
在线一元二次方程计算器实例(方程计算器在线计算)
2013/12/22 Javascript
浅析js中的浮点型运算问题
2014/01/06 Javascript
js正则表达exec与match的区别说明
2014/01/29 Javascript
javascript动态控制服务器控件实例
2014/09/05 Javascript
javascript学习笔记(一)基础知识
2014/09/30 Javascript
JavaScript中操作字符串小结
2015/05/04 Javascript
使用JavaScript实现连续滚动字幕效果的方法
2015/07/07 Javascript
简单实现限制uploadify上传个数
2015/11/16 Javascript
解决jQuery ajax请求在IE6中莫名中断的问题
2016/06/20 Javascript
从对象列表中获取一个对象的方法,依据关键字和值
2017/09/20 Javascript
nodejs基础之常用工具模块util用法分析
2018/12/26 NodeJs
解决Layui中layer报错的问题
2019/09/03 Javascript
node.JS二进制操作模块buffer对象使用方法详解
2020/02/06 Javascript
Vue中关闭弹窗组件时销毁并隐藏操作
2020/09/01 Javascript
基于python的Tkinter实现一个简易计算器
2015/12/31 Python
Python 使用 attrs 和 cattrs 实现面向对象编程的实践
2019/06/12 Python
Python Request爬取seo.chinaz.com百度权重网站的查询结果过程解析
2019/08/13 Python
使用 Python 清理收藏夹里已失效的网站
2019/12/03 Python
Pandas-Cookbook 时间戳处理方式
2019/12/07 Python
python 下载m3u8视频的示例代码
2020/11/11 Python
pip 20.3 新版本发布!即将抛弃 Python 2.x(推荐)
2020/12/16 Python
Mankind西班牙男士护肤品网站:购买皮肤护理、护发和剃须
2017/04/27 全球购物
黄色火烈鸟:De Gele Flamingo
2019/03/18 全球购物
自荐信格式写作方法有哪些呢
2013/11/20 职场文书
高三语文教学反思
2014/01/15 职场文书
2014年应届大学生毕业自我鉴定
2014/01/31 职场文书
2014年党务工作总结
2014/11/25 职场文书
nginx作grpc的反向代理踩坑总结
2021/07/07 Servers
嵌入式Redis服务器在Spring Boot测试中的使用教程
2021/07/21 Redis