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

yipeiwu_com5年前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中list的复制及深拷贝与浅拷贝

深入浅析Python中list的复制及深拷贝与浅拷贝

在Python中,经常要对一个list进行复制。对于复制,自然的就有深拷贝与浅拷贝问题。深拷贝与浅拷贝的区别在于,当从原本的list复制出新的list之后,修改其中的任意一个是否会对另一...

Python工程师面试必备25条知识点

Python工程师面试必备25条Python知识点: 1.到底什么是Python?你可以在回答中与其他技术进行对比 下面是一些关键点: Python是一种解释型语言。这就是说,与C语言和...

详解pandas安装若干异常及解决方案总结

详解pandas安装若干异常及解决方案总结

在为Python安装第三方工具pandas出现了若干问题。 当我在cmd命令环境输入pip install pandas准备安装pandas时,出现了错误提示:Microsoft Vis...

解决Python selenium get页面很慢时的问题

解决Python selenium get页面很慢时的问题

driver.get("url")等到页面全部加载渲染完成后才会执行后续的脚本。 在执行脚本时,driver.get("url") ,如果当前的url页面内容较多加载特别慢,很费时间,但...

python 列表转为字典的两个小方法(小结)

1、现在有两个列表,list1 = ['key1','key2','key3']和list2 = ['1','2','3'],把他们转为这样的字典:{'key1':'1','key2':...