Python学习笔记__20.3章 async/await

本文介绍Python中asyncio模块的异步IO操作,并对比了使用@asyncio.coroutine和yield from与新语法async和await的异同。新语法使得异步IO的代码更加简洁易读。

# 这是学习廖雪峰老师python教程的学习笔记

1、概览

asyncio提供的@asyncio.coroutine可以把一个generator标记为coroutine类型,然后在coroutine内部用yield from调用另一个coroutine实现异步操作。

为了简化并更好地标识异步IO,从Python 3.5开始引入了新的语法asyncawait,可以让coroutine的代码更简洁易读。

 

asyncawait是针对coroutine的新语法,要使用新的语法,只需要做两步简单的替换:

  1. @asyncio.coroutine替换为async

  2. yield from替换为await

2、比较代码

    1、上一节代码

@asyncio.coroutine

def hello():

    print("Hello world!")

    r = yield from asyncio.sleep(1)

    print("Hello again!")

    2、新语法代码

async def hello():

    print("Hello world!")

    r = await asyncio.sleep(1)

    print("Hello again!")


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值