我開始尋找龍捲風並開始閱讀user guide。不過我發現關於協程的東西很迷惑。一方面文檔講述了裝飾@gen.coroutine
如何讓事情變得更容易,但在另一方面,它會告訴你,那:龍捲風協同作業的原生協程Python 3.5的優勢
的Python 3.5引入了異步伺機關鍵字(使用這些關鍵字功能也被稱爲「原生協同程序」)。從Tornado 4.3開始,您可以使用它們來代替基於收益率的協同程序。只需使用async def foo()代替使用@ gen.coroutine修飾器的函數定義,並等待代替yield。本文檔的其餘部分仍使用與舊版本的Python的兼容性產量的風格,但異步和等待的運行速度更快可用時:[...]
所以,現在我想:「OK那麼,只需使用async
和await
就可以了。「但是,在所有示例中,文檔始終使用裝飾器,而不是關鍵字async
。
有一節關於如何調用協程。文檔中寫入的內容對於本機關鍵字仍然如此?
這些裝飾器給了我什麼,所以我應該使用它們而不是本地Python 3.5語法?
(我使用Python 3.5我的這個學習項目,所以我不關心向後兼容性。)
Python將處於過渡狀態一段時間;協程將最終替代舊的基於生成器的異步代碼,因爲3.5已成爲標準。 –
相關:[PEP 0492 - Python 3.5異步關鍵字](// stackoverflow.com/q/31291129) –