Repaso
English
PythonIntermedioPY-16

Dentro de una coroutine escribes asyncio.sleep(1) sin await. ¿Qué pasa?

Opciones

  1. El sleep se ejecuta en segundo plano mientras la coroutine continúa
  2. Se crea un objeto coroutine que nunca se ejecuta, y aparece una advertencia (Opción correcta)
  3. Bloquea todo el event loop un segundo y luego continúa
  4. Python lanza un SyntaxError porque ahí await es obligatorio

Respuesta

Se crea un objeto coroutine que nunca se ejecuta; Python avisa con 'coroutine was never awaited'

Por qué

Llamar a una función async no ejecuta su código. Solo crea un objeto coroutine, como una receta que nadie cocina.

El código se ejecuta solo cuando le haces await o lo programas con asyncio.create_task(...).

Python imprime una advertencia 'never awaited' para ayudarte a encontrar este bug.

Recuerda

Llamar a una función async devuelve una coroutine; nada se ejecuta hasta hacerle await.

Términos clave

Practica esta pregunta en Repaso