Czy istnieje proste wyrażenie generatora, które może dać nieskończone elementy?
To jest kwestia czysto teoretyczna. Nie ma tu potrzeby "praktycznej" odpowiedzi :)
Na przykład łatwo jest utworzyć skończony generator:
my_gen = (0 for i in xrange(42))
Jednak aby stworzyć nieskończoną, muszę „zanieczyścić” moją przestrzeń nazw fałszywą funkcją:
def _my_gen():
while True:
yield 0
my_gen = _my_gen()
Robienie rzeczy w osobnym pliku i import
późniejsze nie liczą się.
Wiem też, że itertools.repeat
to właśnie robi. Ciekawi mnie, czy bez tego istnieje jednoliniowe rozwiązanie.
del _my_gen
jeśli nie chcesz mylić tych dwóch
my_gen
a następnie zróbmy_gen = my_gen()
.