Python获取协程返回值的方式分别是什么
Admin 2022-05-20 群英技术资讯 1461 次浏览
这篇文章主要介绍“Python获取协程返回值的方式分别是什么”,有一些人在Python获取协程返回值的方式分别是什么的问题上存在疑惑,接下来小编就给大家来介绍一下相关的内容,希望对大家解答有帮助,有这个方面学习需要的朋友就继续往下看吧。获取协程返回值的四种方式:
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进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
缓存是一种优化技术,可以在应用程序中使用它来将最近或经常使用的数据保存在内存中,通过这种方式来访问数据的速度比直接读取磁盘文件的高很多
这篇文章主要介绍了python数据结构中的数据类型,在 Python 以及其他所有面向对象编程语言中,类都是对数据的构成(状态)以及数据 能做什么(行为)的描述,下面我们就来你看看python数据结构中的数据类型商务详细介绍,需要的小伙伴可以参考一下
由于项目取数需要,要将两个不同的csv文件合并到一个文件中,所以下面这篇文章主要给大家介绍了关于利用python合并csv文件的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
在我们执行python程序的时候,经常会遇到一个函数因为各种原因,程序进入了停止状态,或者卡死那里,这时候我们可以预估函数的执行时间,然后给函数设置一个最大执行时间,当超过这个执行时间的时候,函数会自动终止
这篇文章主要介绍了python设计模式之装饰器模式,文章基于python得设计模式资料展开饰器模式得详细资料,具有一定的参考价值,需要的小伙伴可以参考一下
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008