Python获取协程返回值的方式有哪些
发表于:2025-02-22 作者:千家信息网编辑
千家信息网最后更新 2025年02月22日,这篇文章主要介绍"Python获取协程返回值的方式有哪些",在日常操作中,相信很多人在Python获取协程返回值的方式有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答
千家信息网最后更新 2025年02月22日Python获取协程返回值的方式有哪些
这篇文章主要介绍"Python获取协程返回值的方式有哪些",在日常操作中,相信很多人在Python获取协程返回值的方式有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Python获取协程返回值的方式有哪些"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
介绍
获取协程返回值的四种方式:
1、通过ensure_future获取,本质是future对象中的result方
2、使用loop自带的create_task, 获取返回值
3、使用callback, 一旦await地方的内容运行完,就会运行callback
4、使用partial这个模块向callback函数中传入值
源码
import asynciofrom functools import partialasync 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函数中传入值
到此,关于"Python获取协程返回值的方式有哪些"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
运行
方式
学习
内容
函数
地方
对象
方法
本质
模块
更多
帮助
实用
主动
接下来
文章
源码
理论
知识
篇文章
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
绝对演绎服务器爆满
农行软件开发部天津
武汉大学网络安全基地评论
网络安全与信息技术学习心得
北京市交通流数据库
数据库改变量
中国知网数据库的新版检索界面
我的世界服务器图片插件下载
软件开发工程师招聘分析
未来想当软件开发公司老板
管理软件开发注意
数据库的核心操作是
steam服务器ip或域名
模型建模在软件开发中的作用
奇安信服务器安全加固系统
宝山区推广软件开发供应商简介
优质软件开发哪家便宜
udisoft服务器无法使用
国家构建网络安全和信息化
数据库双机热备访问
299元家用服务器
我国网络安全等级主要包括
泰安公共数据库
北京移动城管软件开发公司
网络安全手抄报马克笔画
借贷记账法数据库设计
数据库图表报表怎么创建
网络安全行书签怎么制作
网络安全和扫黄打黑班会教案
mu数据库注册闪退