Espacio publicitario (banner)
AD

¿Ya dominas lo básico? Un curso estructurado de Python es la vía rápida para dar el salto.

Ver cursos de Python en Udemy

Enlace de afiliado. No te cuesta nada extra.

🐍Lecciones de Python
Lección 13 / 69

Generadores y yield

En esta lección verás lo básico de los generadores con yield, para entender cómo manejar grandes cantidades de datos sin gastar memoria. Está pensada para quien busca «yield y generadores en Python» o «para qué sirve yield en Python».

Una función que usa yield se llama generador y devuelve los valores de uno en uno en lugar de todos a la vez. Como nunca necesita tener todos los valores en memoria al mismo tiempo, va muy bien para trabajar con grandes volúmenes de datos. La idea es «producir un valor solo cuando hace falta», un mecanismo radicalmente distinto al de una función normal.

La función count_up_to del ejemplo pausa su ejecución cada vez que llega a yield i y entrega un valor a quien la llamó. Cuando recorres un generador con un for, la ejecución se reanuda justo donde se había quedado y continúa hasta el siguiente yield: un flujo de control completamente distinto al de un return normal.

Un error habitual al empezar es no darse cuenta de que un generador solo se puede consumir una vez. Después de haber extraído todos los valores, volver a recorrer el mismo generador no produce nada. Si necesitas usarlo de nuevo, tienes que llamar otra vez a la función generadora para crear uno nuevo.

Los generadores son una herramienta muy práctica en el trabajo real: leer un archivo de registro enorme línea a línea cuando la memoria es limitada, por ejemplo. Comparados con una función que lo devuelve todo como lista, también son más flexibles cuando quieres detener el proceso a mitad.

Python
SALIDA

💡 El motor de Python puede tardar unos segundos en cargarse la primera vez que ejecutas código.

Espacio publicitario (banner)
Espacio publicitario (en el artículo)