Есть ли простое выражение генератора, которое может давать бесконечные элементы?
Это чисто теоретический вопрос. Здесь нет нужды в "практическом" ответе :)
Например, легко сделать конечный генератор:
my_gen = (0 for i in xrange(42))
Однако, чтобы создать бесконечное число, мне нужно «засорить» свое пространство имен ложной функцией:
def _my_gen():
while True:
yield 0
my_gen = _my_gen()
Выполнение действий в отдельном файле и import
-ing позже не считается.
Я также знаю, что itertools.repeat
это именно так. Мне любопытно, есть ли однострочное решение без этого.
del _my_gen
если не хотите путать их
my_gen
и сделайте этоmy_gen = my_gen()
.