import asyncio import time async def func(): print("你好啊!吕布!") # time.sleep(3) #time.sleep 是一个同步操作 出现同步 会中断异步 await asyncio.sleep(3) #换成异步操作代码 print("你好啊!吕布!") async def func2(): print("你好啊!貂蝉!") # time.sleep(2) await asyncio.sleep(2) print("你好啊!貂蝉!") async def func3(): print("你好啊!诸葛亮!") # time.sleep(1) await asyncio.sleep(1) print("你好啊!诸葛亮!") async def main(): #第一种写法 # f1= func() # await f1 #一般await挂起操作放在协程对象前面 # 第二种写法 task = [ func(), func2(), func3() ] await asyncio.wait(task) pass if __name__=='__main__': asyncio.run(main())
运行此代码时发现了报错
DeprecationWarning: The explicit passing of coroutine objects to asyncio.wait() is deprecated since Python 3.8, and scheduled for removal in Python 3.11.
await asyncio.wait(task)
查询原因后得知 Python版本3.5以后就不支持此写法了。
具体的修改为
将上述的写法 改为下面的 使用asyncio.create_task()创建task对象
以上能顺利解决!