У меня есть следующий код
import asyncio
loop = asyncio.get_event_loop()
async def while_loop():
n = 0
while True:
print(f"{n}")
await asyncio.sleep(2)
n = n+1
async def some_func():
await asyncio.sleep(5)
print("Some Func")
future = loop.create_task(while_loop())
loop.run_until_complete(some_func())
Я ожидал, что функция while_loop
будет работать вечно, но, кажется, она выполняется только в результате вызова run_until_complete
и перестает печатать цикл while один раз some_func
завершено выполнение.Вывод, который я вижу:
0
1
2
Some Func
Я ожидал, что цифры продолжат печататься даже после завершения some_func
.
0
1
2
Some Func
3
4
5
6
.
.
.
Единственный способ получить больше напечатанных номеров - это позвонитьsome_func
снова.