Existe-t-il une expression génératrice simple qui peut produire des éléments infinis?
C'est une question purement théorique. Pas besoin de réponse "pratique" ici :)
Par exemple, il est facile de créer un générateur fini:
my_gen = (0 for i in xrange(42))
Cependant, pour en créer un infini, j'ai besoin de "polluer" mon espace de noms avec une fonction bidon:
def _my_gen():
while True:
yield 0
my_gen = _my_gen()
Faire des choses dans un fichier séparé et import
plus tard ne compte pas.
Je sais aussi que cela itertools.repeat
fait exactement cela. Je suis curieux de savoir s'il existe une solution à une seule ligne sans cela.
del _my_gen
si vous ne voulez pas confondre les deux
my_gen
, puis faitesmy_gen = my_gen()
.