注意区分 Python 里有好几个跟异步有关的概念:CoroutineTaskFuture其中第一个才是我们常说的“协程”。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 以后提问代码请直接复制文本,不要截图。
注意区分 Python 里有好几个跟异步有关的概念:
其中第一个才是我们常说的“协程”。
Python 3.8 开始
asyncio.wait()
里传入的只能是 Task,但还只是 WARNING,代码还能跑;等到 Python 3.11 开始,则直接就会像图里那样报错了。现在你需要先用
asyncio.create_task()
将一个 Coroutine 包装成 Task 以后,才能传给asyncio.wait()
:P.S.1 学习编程要考虑兼容性,注意学习资料的时效性,很多时候代码在低版本能跑,不代表在高版本也能跑。
P.S.2 以后提问代码请直接复制文本,不要截图。