¿Existe una expresión generadora sencilla que pueda producir elementos infinitos?
Ésta es una cuestión puramente teórica. No hay necesidad de una respuesta "práctica" aquí :)
Por ejemplo, es fácil hacer un generador finito:
my_gen = (0 for i in xrange(42))
Sin embargo, para hacer uno infinito, necesito "contaminar" mi espacio de nombres con una función falsa:
def _my_gen():
while True:
yield 0
my_gen = _my_gen()
Hacer las cosas en un archivo separado y import
hacerlas más tarde no cuenta.
También sé que itertools.repeat
hace exactamente esto. Tengo curiosidad por saber si hay una solución de una sola línea sin eso.
del _my_gen
si no quieres confundir a los dos
my_gen
y luego hazlomy_gen = my_gen()
.