python语言之使用async关键字来定义函数

电子发烧友 20220825

  • Python

协程背景

早期的协程是用yield来实现的,但是代码特别难懂, python3.5之后的版本, 使用 async 关键字来定义的函数。调用该函数,会返回一个协程对象

async和yield对比

不同点:

1.1 yield语法比较复杂,async语法简单

yield:b=yield a,yield右边的a是第一次的返回值,左边的b是第二次执行的输入值,最后还有一个return是最后一次返回值

async:方法前面加async,做send参数时,只能传None,代码可读性大大提高了, 开发者只需要关注传参和返回值, 而不需要花额外精力去理解yield左右的变量

1.2 async只需要send一次就可以获得返回值,yield要send2次

例子说明

分别用yield和async的方式, 实现协程


async def req1(param):
return param


def req2(param):
res = yield param
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返回值 1
req2接收 2
req2返回值 2
'''


审核编辑:刘清

查看全文

点赞

电子发烧友

作者最近更新

  • 华为位列国内企业研发第一!比亚迪Q3净利润大涨3倍 /热点科技新闻点评
    电子发烧友
    2022-10-18
  • 诚迈科技通过HarmonyOS Connect生态产品技术认证
    电子发烧友
    2022-10-13
  • 苹果iPhone14抢先进入无卡通话时代 eSIM技术物联网机遇在哪里?
    电子发烧友
    2022-10-13

期刊订阅

相关推荐

  • 为什么很多人宁可用 Excel 也不用 Python?丨T群话

    2022-06-18

  • 为什么很多人宁可用 Excel 也不用 Python?丨T群话

    2022-07-01

  • python开源库之inlineCallbacks简介

    2022-08-21

  • python开源库之twisted cancel知识简析

    2022-08-22

评论0条评论

×
私信给电子发烧友

点击打开传感搜小程序 - 速览海量产品,精准对接供需

  • 收藏

  • 评论

  • 点赞

  • 分享

收藏文章×

已选择0个收藏夹

新建收藏夹
完成
创建收藏夹 ×
取消 保存

1.点击右上角

2.分享到“朋友圈”或“发送给好友”

×

微信扫一扫,分享到朋友圈

推荐使用浏览器内置分享功能

×

关注微信订阅号

关注微信订阅号,了解更多传感器动态

  • #{faceHtml}

    #{user_name}#{created_at}

    #{content}

    展开

    #{like_count} #{dislike_count} 查看评论 回复

    共#{comment_count}条评论

    加载更多

  • #{ahtml}#{created_at}

    #{content}

    展开

    #{like_count} #{dislike_count} #{reback} 回复

  • #{ahtml}#{created_at}

    #{content}

    展开

    #{like_count} #{dislike_count} 回复

  • 关闭
      广告