¿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!
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óngen_row
. Esto crea un bucle infinito que continúa generando valores del iteradorj
. Por lo tanto, cuando cada generador es llamado, continuamente generará valores de su funcióngen_row
respectiva hasta que sea interrumpido o terminado externamente. Como resultado, la salida será un flujo infinito de valores de cada generador.