2017-04-22 77 views

回答

2

您可以在事件循環中安排協程。你不能在非協程中調用它們或等待它們。

讓我們來看看下面的代碼:

import asyncio 


async def greetLater(name, delay): 
    await asyncio.sleep(delay) 
    print("Hello {}!".format(name)) 


def main(): 
    loop = asyncio.get_event_loop() 
    loop.run_until_complete(greetLater("masnun", 10)) 


if __name__ == '__main__': 
    main() 

在上面的代碼,greetLater是一個協同程序。我們不能直接從main函數中調用它。我們在這裏需要做的是創建一個事件循環,然後在那裏安排協程。我們使用asyncio模塊來幫助我們創建事件循環並運行協程。

更多參考:

(免責聲明:鏈接的話題我的個人博客文章,你可以谷歌更多的參考資料)

+0

傳遞循環到它所在的函數中可以關閉嗎?我所做的可能會被其他人使用,我認爲你比我更有經驗。 – apoorlydrawnape

+0

我沒有完全理解這個場景,但是通常傳遞循環沒問題。 – masnun