es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Por qué el generador es infinito?

Por favor, eche un vistazo a este generador de generadores (escrito en Python):

def gen_chars():
    def gen_row(j):
        while True: yield from j

for l in ['1234', 'abc', 'ABC', '0']: yield gen_row(l)

Lo que no entiendo es:

¿Por qué cualquiera de estos cuatro generadores es infinito?

Por ejemplo: ¿Por qué el primer generador es: 1, 2, 3, 4, 1, 2, 3, 4, 1, … (el bucle nunca termina),

y no solo: 1, 2, 3, 4 (fin)?

¡Gracias de antemano por su ayuda!

Tags:  , ,

Answer

  1. Avatar for davy.ai

    La razón por la cual cada generador es infinito se debe al uso de la declaración while True en la función gen_row. Esto crea un bucle infinito que continúa generando valores del iterador j. Por lo tanto, cuando cada generador es llamado, continuamente generará valores de su función gen_row respectiva hasta que sea interrumpido o terminado externamente. Como resultado, la salida será un flujo infinito de valores de cada generador.

Comments are closed.