Series

Palabras clave en Python: yield

Leodanis Pozo Ramos
Leodanis Pozo Ramos
22 ene 2026 2 min
Palabras clave en Python: yield

En Python, la palabra clave yield se utiliza en una función para convertirla en un generador que produce una secuencia de valores de manera eficiente.

Sintaxis

La sintaxis para utilizar yield en una función es la siguiente:

def generator():
    yield value

Solo necesitas incluir la palabra clave yield seguida del valor que deseas devolver.

Los generadores también pueden incluir varios yield:

def gen_numbers():
    yield 0
    yield 1
    yield 2

Finalmente, es común usar yield en un ciclo for:

def gen_numbers():
    for number in range(3):
        yield number

Ejemplos prácticos

Veamos un ejemplo de cómo se usa la palabra clave yield en Python:

>>> def counter():
...     n = 0
...     while n < 3:
...         yield n
...         n += 1
...

>>> gen = counter()
>>> next(gen)
0
>>> next(gen)
1
>>> next(gen)
2

>>> next(gen)
Traceback (most recent call last):
    ...
StopIteration

En este ejemplo, la función counter() es un generador que utiliza yield para devolver los valores 0, 1 y 2, uno a la vez, cada vez que se llama a next() en el generador.

Si intentas llamar a next(gen) una vez que el generador ha producido todos sus valores, Python lanzará una excepción StopIteration. Esta excepción indica que no quedan más elementos por generar y es el comportamiento esperado para finalizar la iteración.

En la mayoría de los casos, usarás un ciclo for para iterar sobre el generador:

>>> for count in counter():
...     print(count)
...
0
1
2

En este ejemplo, el ciclo for gestiona automáticamente el fin de la iteración cuando ocurre la excepción StopIteration.

Uso de yield

Los casos de uso más comunes de la palabra clave yield incluyen los siguientes:

  • Crear generadores que producen una secuencia de valores donde cada valor se genera bajo demanda, lo cual es útil para manejar grandes cantidades de datos haciendo un uso eficiente de la memoria.
  • Implementar algoritmos que requieren una pausa y reanudación de su estado, como iteradores personalizados.
  • Mejorar la eficiencia de memoria al no requerir que se almacenen todos los valores en la memoria al mismo tiempo.

Resumiendo

La palabra clave yield en Python te permite crear generadores para gestionar y procesar grandes cantidades de datos de manera eficiente y con un uso mínimo de memoria.

Conocer y emplear yield te permite escribir código más eficiente y legible, especialmente cuando trabajas con flujos de datos continuos o grandes.