python學習筆記 async and await

asyncio提供的@asyncio.coroutine能夠把一個generator標記爲coroutine類型,而後在coroutine內部用yield from調用另外一個coroutine實現異步操做。異步

爲了簡化並更好地標識異步IO,從Python 3.5開始引入了新的語法asyncawait,能夠讓coroutine的代碼更簡潔易讀。async

請注意,asyncawait是針對coroutine的新語法,要使用新的語法,只須要作兩步簡單的替換:spa

  1. @asyncio.coroutine替換爲async
  2. yield from替換爲await
@asyncio.coroutine
def hello():
    print("Hello world!")
    r = yield from asyncio.sleep(1)
    print("Hello again!")

用新語法從新編寫以下:code

async def hello():
    print("Hello world!")
    r = await asyncio.sleep(1)
    print("Hello again!")
相關文章
相關標籤/搜索