◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。
python协程代码报错:如何解决初学者常见问题?
遇到协程报错问题时,需要仔细区分几个容易混淆的概念:协程(coroutine)、任务(task)和未来事件(future)。协程是python中的基本异步概念。
在python 3.8中,asyncio.wait()函数只能接收任务作为参数,但代码显示的是协程。从python 3.11开始,这种错误将导致程序崩溃。解决方法是使用asyncio.create_task()函数将协程包装成任务,然后再传递给asyncio.wait():
- tasks.append(aiodownload(cid, b_id, title)) + task = asyncio.create_task(aiodownload(cid, b_id, title)) + tasks.append(task)
提问时,建议直接文本,避免截图带来的不便。另外,在学习编程时,需要关注兼容性,确保学习资料符合当前版本要求。
立即学习“Python免费学习笔记(深入)”;
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。