Sobes.tech
Middle
50

Ce se întâmplă dacă res = asyncio.sleep(1) fără await, se poate apela așa?

Companiile au fost întrebate
Saber Interactive

Răspuns de la AI

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())