async/await

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

 

为简化并更好的标识异步IO,从python3.5版本开始引入新的语法async和await。可以让协程的代码更简洁易读。

 

如何使用新的语法?

 1 把@asyncio.coroutine替换为async

 2 把yield from替换为await

 

旧代码:

@asyncio.coroutine
def hello():
    print('hello,world')
    r = yield from asyncio.sleep(1)
    print('hello,again')

新代码:

async def hello():
    print("Hello world!")
    r = await asyncio.sleep(1)
    print("Hello again!")

 

posted @ 2017-10-28 22:08  highly  阅读(119)  评论(0编辑  收藏  举报