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进阶教程之循环相关函数range、enumerate、zip
Aug 30 Python
详解Python中的各种函数的使用
May 24 Python
matplotlib简介,安装和简单实例代码
Dec 26 Python
详解python单元测试框架unittest
Jul 02 Python
使用Python读取二进制文件的实例讲解
Jul 09 Python
python tkinter界面居中显示的方法
Oct 11 Python
python opencv 批量改变图片的尺寸大小的方法
Jun 28 Python
Django生成PDF文档显示在网页上以及解决PDF中文显示乱码的问题
Jul 04 Python
Pytorch根据layers的name冻结训练方式
Jan 06 Python
Python3+Selenium+Chrome实现自动填写WPS表单
Feb 12 Python
django 模型中的计算字段实例
May 19 Python
python利用paramiko实现交换机巡检的示例
Sep 22 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
正义联盟的终局之战《天启星战争》将成为DC动画宇宙的最后一部
2020/04/09 欧美动漫
PHP查询数据库中满足条件的记录条数(两种实现方法)
2013/01/29 PHP
判断JavaScript对象是否可用的最正确方法分析
2008/10/03 Javascript
Javascript事件热键兼容ie|firefox
2010/12/30 Javascript
jquery表单验证使用插件formValidator
2012/11/10 Javascript
JS 有趣的eval优化输入验证实例代码
2013/09/22 Javascript
JavaScript对象学习经验整理
2013/10/12 Javascript
JS获取URL中的参数数据
2013/12/05 Javascript
浅谈JavaScript中的作用域和闭包问题
2015/07/07 Javascript
jQuery 中ajax异步调用的四种方式
2016/06/28 Javascript
javascript弹出带文字信息的提示框效果
2016/07/19 Javascript
使用nodejs中httpProxy代理时候出现404异常的解决方法
2016/08/15 NodeJs
详解js数组的完全随机排列算法
2016/12/16 Javascript
使用node.js搭建服务器
2017/05/20 Javascript
使用JavaScript实现链表的数据结构的代码
2017/08/02 Javascript
jQuery实现的鼠标响应缓冲动画效果示例
2018/02/13 jQuery
Vue 实现从文件中获取文本信息的方法详解
2019/10/16 Javascript
VUE 直接通过JS 修改html对象的值导致没有更新到数据中解决方法分析
2019/12/02 Javascript
python写的ARP攻击代码实例
2014/06/04 Python
将Emacs打造成强大的Python代码编辑工具
2015/11/20 Python
详解Python的Django框架中manage命令的使用与扩展
2016/04/11 Python
基于Python pip用国内镜像下载的方法
2018/06/12 Python
python中单下划线_的常见用法总结
2018/07/10 Python
Python使用pickle模块报错EOFError Ran out of input的解决方法
2018/08/16 Python
对Python中创建进程的两种方式以及进程池详解
2019/01/14 Python
pyqt5实现绘制ui,列表窗口,滚动窗口显示图片的方法
2019/06/20 Python
Python之Class&Object用法详解
2019/12/25 Python
夏威夷灵感服装及配饰:Reyn Spooner
2018/09/18 全球购物
2019史上最全Database工程师题库
2015/12/06 面试题
数控专业毕业生自荐信范文
2014/03/04 职场文书
二年级评语大全
2014/04/23 职场文书
家长学校培训材料
2014/08/20 职场文书
乡镇四风对照检查材料
2014/08/31 职场文书
材料员岗位职责范本
2015/04/11 职场文书
vue-cli4.5.x快速搭建项目
2021/05/30 Vue.js
MySQL创建表操作命令分享
2022/03/25 MySQL