Sobes.tech
Назад к вопросам
Middle
4

Что будет res = asyncio.sleep(1) без await, можно ли так вызывать

Компании, где спрашивали
Saber Interactive

Ответ от нейросети

sobes.tech AI

Вызов res = asyncio.sleep(1) без await не запускает паузу, а просто возвращает корутину (объект типа coroutine). Эта корутина не будет выполнена, пока вы явно не вызовете await или не запустите её в event loop.

То есть, без await вы не получите задержку, а только объект, который нужно потом запустить. Такой вызов допустим, если вы планируете передать корутину дальше или запустить её позже, но просто так вызвать asyncio.sleep(1) без await — это ошибка логики, так как задержка не произойдёт.

Пример:

import asyncio

async def main():
    res = asyncio.sleep(1)  # res — корутина, пауза не началась
    print(res)  # <coroutine object sleep at 0x...>
    await res  # теперь пауза выполнится

asyncio.run(main())