图中的Python协程代码一直报错应当如何解决,初学者求助,问题较多?



这个代码一直报错,感觉错误不少,我还看不懂是怎么一回事

有没有大佬解决一下,我将感激不尽,谢谢!!!

阅读 751
1 个回答

注意区分 Python 里有好几个跟异步有关的概念:

  • Coroutine
  • Task
  • Future

其中第一个才是我们常说的“协程”。

Python 3.8 开始 asyncio.wait() 里传入的只能是 Task,但还只是 WARNING,代码还能跑;等到 Python 3.11 开始,则直接就会像图里那样报错了。

现在你需要先用 asyncio.create_task() 将一个 Coroutine 包装成 Task 以后,才能传给 asyncio.wait()

...
-  tasks.append(aiodownload(cid, b_id, title))
+  task = asyncio.create_task(aiodownload(cid, b_id, title))
+  tasks.append(task)
...

P.S.1 学习编程要考虑兼容性,注意学习资料的时效性,很多时候代码在低版本能跑,不代表在高版本也能跑。

P.S.2 以后提问代码请直接复制文本,不要截图。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏