Repaso
English
PythonIntermedioPY-29

¿Qué imprime esto?

def inner():
    yield 1
    yield 2

def outer():
    yield 0
    yield from inner()
    yield 3

print(list(outer()))

Opciones

  1. [0, <generator>, 3]
  2. [0, 1, 2, 3] (Opción correcta)
  3. [0, 3]
  4. [0, [1, 2], 3]

Respuesta

[0, 1, 2, 3]

Por qué

yield from inner() pasa cada valor que produce inner(), como si outer() lo hubiera producido.

Así que obtenemos 0, luego 1 y 2 de inner, y luego 3.

Recuerda

yield from = cede el turno a otro generator.

Términos clave

Practica esta pregunta en Repaso