我开始寻找龙卷风并开始阅读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) –