【发布时间】:2021-03-09 16:02:19
【问题描述】:
有以下代码:
import asyncio
async def mycoro(number: int):
print(f"Starting {number}")
await asyncio.sleep(1)
print(f"Finishing {number}")
return str(number)
c = mycoro(7)
# task = asyncio.ensure_future(c)
task = asyncio.create_task(c)
loop = asyncio.get_event_loop()
loop.run_until_complete(task)
loop.close()
为什么我得到 sys:1: RuntimeWarning: coroutine 'mycoro' was never waiting
同时:
import asyncio
async def mycoro(number: int):
print(f"Starting {number}")
await asyncio.sleep(1)
print(f"Finishing {number}")
return str(number)
c = mycoro(7)
task = asyncio.ensure_future(c)
# task = asyncio.create_task(c)
loop = asyncio.get_event_loop()
loop.run_until_complete(task)
loop.close()
按预期运行
如果
按照https://docs.python.org/3.9/library/asyncio-task.html#creating-tasks两种创建任务的方式:
task = asyncio.create_task(coro())
task = asyncio.ensure_future(coro())
被接受了吗?
*用python3.9运行
【问题讨论】: