python语言之await和yield from的对比
发布时间:2022-08-25 10:22:23 所属栏目:交互 来源:互联网
导读:await和yield from对比 不同点:yield from 后面的值,要么是生成器,要么是最终为可迭代对象,而await后面只能跟async开头的方法 相同点: 都是产出结果,让出控制权,等待返回结果 例子说明 分别用await和yield from实现了等待协程完成的过程 async def re
|
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 ''' (编辑:孝感站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
