python报错:
DeprecationWarning: “@coroutine” decorator is deprecated since Python 3.8, use “async def” instea def logger_factory(app, handler):
报错原因:
用asyncio提供的@asyncio.coroutine可以把一个generator标记为coroutine类型,然后在coroutine内部用yield from调用另一个coroutine实现异步操作。
但是从Python 3.5开始引入了新的语法async和await,可以让coroutine的代码更简洁易读(抛弃了@asyncio.coroutine)。
解决办法:
async和await是针对coroutine的新语法,要使用新的语法,只需要做两步简单的替换:
1.把@asyncio.coroutine替换为async;
2.把yield from替换为await。
小结
Python从3.5版本开始为asyncio提供了async和await的新语法;
注意新语法只能用在Python 3.5以及后续版本,如果使用3.4版本,则仍需使用@asyncio.coroutine。
觉得有用请关注一下哦