2017-02-20 29 views
1

aiohttp庫的documentation狀態:爲什麼使用顯式循環參數與aiohttp?

環路 - 用於處理HTTP請求的事件循環。如果param爲None,則使用asyncio.get_event_loop()獲取默認事件循環,但我們強烈建議在任何地方使用顯式循環。 (可選)

它可以通過loopClientSession對象,以提供「模塊級」功能等

我是新來的異步編程概念,作爲一個整體,你可以解釋我爲什麼建議明確提供循環使用,而不是讓對象/函數只使用默認值?

想到的一種用法是通過能夠提供自己的循環模擬來使測試變得更容易,是否存在性能原因?

回答

1

原因是可讀性而不是性能。

明確指定循環將使開發人員更容易查看循環實例的起源位置,並且如果需要將自定義循環注入到程序中,可能會更容易更改循環。

另一個受歡迎的選項是從不指定循環參數,因此總是調用asyncio.get_event_loop()來獲取循環實例。

(可以使用多個循環 - 例如在不同的線程中,但這不是常見用例)

相關問題