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多线程扫描端口示例
Jan 16 Python
python在不同层级目录import模块的方法
Jan 31 Python
Python设计模式编程中Adapter适配器模式的使用实例
Mar 02 Python
读取本地json文件,解析json(实例讲解)
Dec 06 Python
Python中常见的异常总结
Feb 20 Python
Python之dict(或对象)与json之间的互相转化实例
Jun 05 Python
python中的不可变数据类型与可变数据类型详解
Sep 16 Python
在mac下查找python包存放路径site-packages的实现方法
Nov 06 Python
pytorch逐元素比较tensor大小实例
Jan 03 Python
Django 批量插入数据的实现方法
Jan 12 Python
超级实用的8个Python列表技巧
Aug 24 Python
Python 使用office365邮箱的示例
Oct 29 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解决约瑟夫环示例
2014/04/09 PHP
PHP连接sql server 2005环境配置及问题解决
2014/08/08 PHP
PHP生成不重复标识符的方法
2014/11/21 PHP
thinkPHP5.0框架开发规范简介
2017/03/25 PHP
在IE浏览器中resize事件执行多次的解决方法
2011/07/12 Javascript
复制js对象方法(详解)
2013/07/08 Javascript
jQuery+slidereveal实现的面板滑动侧边展出效果
2015/03/14 Javascript
js给selected添加options的方法
2015/05/06 Javascript
jquery获取文档高度和窗口高度汇总
2016/01/25 Javascript
jQuery模仿单选按钮选中效果
2016/06/24 Javascript
使用javaScript实现鼠标拖拽事件
2020/04/03 Javascript
vue 文件目录结构详解
2017/11/24 Javascript
nodejs 最新版安装npm 的使用详解
2018/01/18 NodeJs
详解vue移动端项目的适配(以mint-ui为例)
2018/08/17 Javascript
小试SVG之新手小白入门教程
2019/01/08 Javascript
卸载vue2.0并升级vue_cli3.0的实例讲解
2020/02/16 Javascript
[48:29]2018DOTA2亚洲邀请赛3月30日 小组赛A组 LGD VS KG
2018/03/31 DOTA
Python 备份程序代码实现
2017/03/06 Python
Python实现的KMeans聚类算法实例分析
2018/12/29 Python
Pycharm 设置默认头的图文教程
2019/01/17 Python
纯CSS3实现Material Design效果
2017/03/09 HTML / CSS
沙龙级头发造型工具:FOXYBAE
2018/07/01 全球购物
主键(Primary Key)约束和唯一性(UNIQUE)约束的区别
2013/05/29 面试题
Java中的基本数据类型所占存储空间大小固定的吗
2012/02/15 面试题
数控技术与应用毕业生自荐信
2013/09/24 职场文书
文史专业毕业生自荐信
2013/11/17 职场文书
安全资料员岗位职责
2013/12/14 职场文书
贯彻落实“八项规定”思想汇报
2014/09/13 职场文书
警告通知
2015/04/25 职场文书
举起手来观后感
2015/06/09 职场文书
2015年秋季运动会加油稿
2015/07/22 职场文书
2015年政教主任工作总结
2015/07/23 职场文书
解决python存数据库速度太慢的问题
2021/04/23 Python
Python实现列表拼接和去重的三种方式
2021/07/02 Python
vue @click.native 绑定原生点击事件
2022/04/22 Vue.js
使用compose函数优化代码提高可读性及扩展性
2022/06/16 Javascript