Python获取协程返回值的方式分别是什么
Admin 2022-05-20 群英技术资讯 806 次浏览
获取协程返回值的四种方式:
1、通过ensure_future获取,本质是future对象中的result方
2、使用loop自带的create_task, 获取返回值
3、使用callback, 一旦await地方的内容运行完,就会运行callback
4、使用partial这个模块向callback函数中传入值
import asyncio from functools import partial async def talk(name): print(f"talk function run.") await asyncio.sleep(0.1) return f"{name} talk!" async def sleep(name): print(f"sleep function run.") await asyncio.sleep(0.1) return f"{name} sleep!" def callback(name): print(f"主动抛出接收:{name}") if __name__ == "__main__": # 通过ensure_future获取,本质是future对象中的result方法 # loop = asyncio.get_event_loop() # get_future1 = asyncio.ensure_future(talk("Dog")) # get_future2 = asyncio.ensure_future(sleep("Cat")) # loop.run_until_complete(get_future1) # loop.run_until_complete(get_future2) # print(get_future1.result()) # print(get_future2.result()) # 使用loop自带的create_task, 获取返回值 # loop = asyncio.get_event_loop() # task1 = loop.create_task(talk("Dog")) # task2 = loop.create_task(sleep("Cat")) # loop.run_until_complete(task1) # loop.run_until_complete(task2) # print(task1.result()) # print(task2.result()) # 使用callback, 一旦await地方的内容运行完,就会运行callback # loop = asyncio.get_event_loop() # task1 = loop.create_task(talk("Dog")) # task2 = loop.create_task(sleep("Cat")) # task1.add_done_callback(callback) # task2.add_done_callback(callback) # loop.run_until_complete(task1) # loop.run_until_complete(task2) # print(task1.result()) # print(task2.result()) # 使用partial这个模块向callback函数中传入值 loop = asyncio.get_event_loop() task1 = loop.create_task(talk("Dog")) task2 = loop.create_task(talk("Cat")) task1.add_done_callback(partial(callback)) task2.add_done_callback(partial(callback)) loop.run_until_complete(task1) loop.run_until_complete(task2) print(task1.result()) print(task2.result())
通过ensure_future获取,本质是future对象中的result方法
使用loop自带的create_task, 获取返回值
用callback, 一旦await地方的内容运行完,就会运行callback
使用partial这个模块向callback函数中传入值
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
在YOLOV5算法之中,针对不同的数据集,一般会预先设置固定的Anchor,下面这篇文章主要给大家介绍了关于yolov5中anchors设置的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
PDF是Portable Document Format的缩写,这类文件通常使用`.pdf`作为其扩展名。在日常开发工作中,最容易遇到的就是从PDF中读取文本内容以及用已有的内容生成PDF文档这两个任务。本文为大家介绍了几个Python中常见的PDF操作,需要的可以参考一下
Python内置函数-memoryview() 函数。memoryview() 函数返回给定参数的内存查看对象(Momory view)。
内容介绍利用whileTrue:+sleep()实现定时任务使用Timeloop库运行定时任务利用threading.Timer实现定时任务利用内置模块sched实现定时任务利用调度模块sche
yaml是Python的第三方库。YAML is a human friendly data serialization standard for all programming languages(YAML是一个对所有编程语言都很友好的数据序列化标准)。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008