python中利用Future对象异步返回结果示例代码

yipeiwu_com6年前Python基础

前言

本文主要给大家介绍了关于python中用Future对象异步返回结果的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。

一个Future是用来表示将来要完成的结果,异步循环可以自动完成对这种对象的状态触发。

例子如下:

import asyncio 
 
 
def mark_done(future, result): 
 print('setting future result to {!r}'.format(result)) 
 future.set_result(result) 
 
 
event_loop = asyncio.get_event_loop() 
try: 
 all_done = asyncio.Future() 
 
 print('scheduling mark_done') 
 event_loop.call_soon(mark_done, all_done, 'the result') 
 
 print('entering event loop') 
 result = event_loop.run_until_complete(all_done) 
 print('returned result: {!r}'.format(result)) 
finally: 
 print('closing event loop') 
 event_loop.close() 
 
print('future result: {!r}'.format(all_done.result())) 

输出结果如下:

scheduling mark_done
entering event loop
setting future result to 'the result'
returned result: 'the result'
closing event loop
future result: 'the result'

在这个例子里,并没有调用return语句,但也可以生成一个结果返回。Future的使用跟协程使用是一样的。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对【听图阁-专注于Python设计】的支持。

相关文章

python实现定时压缩指定文件夹发送邮件

工作中每天需要收集部门内的FR文件,发送给外部部门的同事帮忙上传,这么发了有大半年,昨天亮光一闪,为什么不做成自动化呢,于是用python实现了整个流程,今天体验了一下真是美滋滋。 代码...

Python单元测试工具doctest和unittest使用解析

Python单元测试工具doctest和unittest使用解析

Python标准库包含两个测试工具。 doctest:一个简单的模块,为检查文档而设计,但也适合用来编写单元测试。 unittest:一个通用的测试框架。 一、使用doctest进行单元...

详细解读Python中的__init__()方法

__init__()方法意义重大的原因有两个。第一个原因是在对象生命周期中初始化是最重要的一步;每个对象必须正确初始化后才能正常工作。第二个原因是__init__()参数值可以有多种形式...

python接口自动化测试之接口数据依赖的实现方法

在做自动化测试时,经常会对一整套业务流程进行一组接口上的测试,这时候接口之间经常会有数据依赖,那么具体要怎么实现这个依赖呢。 思路如下: 抽取之前接口的返回值存储到全局变量字典中...

基于Python和Scikit-Learn的机器学习探索

你好,%用户名%! 我叫Alex,我在机器学习和网络图分析(主要是理论)有所涉猎。我同时在为一家俄罗斯移动运营商开发大数据产品。这是我第一次在网上写文章,不喜勿喷。 现在,很多人想开...