Чи існує прямий вираз генератора, який може давати нескінченні елементи?
Це суто теоретичне питання. Тут не потрібно "практичної" відповіді :)
Наприклад, легко зробити генератор кінцевих даних:
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()
.