Desarrollador Python: pregunta de entrevista

¿Cuándo usarías generadores en Python?

Los generadores producen valores de forma perezosa con yield y conservan el estado entre iteraciones; úsalos para streams o secuencias grandes cuando materializar todo desperdicia memoria.

Respuesta directa

Qué debe cubrir una buena respuesta

Cómo funciona

Una función generadora devuelve un iterador cuyo cuerpo solo corre cuando el consumidor pide el siguiente valor, suspendiéndose en cada yield con su estado local intacto. Eso la hace la herramienta natural para leer ficheros grandes línea a línea, paginar una API, transformar una secuencia infinita o construir pipelines donde cada etapa tira de la anterior. Los generadores son de un solo paso y no se pueden indexar ni medir con len, así que sirven para streaming, no para acceso aleatorio.

Ejemplo

Un análisis de logs lee un fichero de 20 GB con un generador que produce registros parseados, los filtra en un segundo generador y agrega en un bucle; el pico de memoria queda por debajo de 100 MB porque solo un registro vive a la vez. El mismo trabajo con list comprehensions intentaría mantener todas las líneas en memoria.

Errores frecuentes

  • Consumir un generador dos veces y procesar cero elementos la segunda sin aviso.
  • Envolver un generador en list() para saber su longitud y perder la ventaja de memoria.
  • Usar un generador donde el llamador necesita saltar entre posiciones y reconstruirlo una y otra vez.

Una estructura útil para responder

Responde desde tu propia experiencia.

No memorices un guion: usa solo ejemplos que puedas explicar con honestidad en preguntas posteriores.

Practica esta respuesta con MiraHint

Abre el espacio de trabajo de escritorio y ensaya una respuesta clara con tus propias palabras.

Descargar MiraHint
Preguntas de entrevista para Desarrollador Python