全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > 模拟技术 >

python语言之await和yield from的对比

时间:2022-08-24 12:02

人气:

作者:admin

标签: 生成器  python 

导读:不同点:yield from 后面的值,要么是生成器,要么是最终为可迭代对象,而await后面只能跟async开头的方法...

await和yield from对比

不同点:yield from 后面的值,要么是生成器,要么是最终为可迭代对象,而await后面只能跟async开头的方法

相同点: 都是产出结果,让出控制权,等待返回结果

例子说明

分别用await和yield from实现了等待协程完成的过程

async def req1_sub(param):
return param+10


async def req1(param):
res = await req1_sub(param)
res += 100
return res


def req2_sub(param):
res = yield param+10
return res


def req2(param):
res = yield from req2_sub(param)
res += 100
return res


def print_value(f, args):
try:
b = f.send(args)
except StopIteration as e:
print(f'{f.__name__}返回值 {e.value}')
return e.value
else:
print(f'{f.__name__}接收 {b}')
return b


g1 = req1(1)
print_value(g1, None)


g2 = req2(2)
res = print_value(g2, None)
print_value(g2, res)

'''
结果:
req1返回值 111
req2接收 12
req2返回值 112
'''


审核编辑:刘清

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信