Sobes.tech
Назад к вопросам
Middle
2

Можно ли создать бесконечный итератор и генератор? Что для этого нужно?

Компании, где спрашивали
Navio

Ответ от нейросети

sobes.tech AI

Да, в Python можно создать бесконечный итератор и генератор. Для этого нужно реализовать итератор, который никогда не вызывает StopIteration, или генератор с бесконечным циклом.

Пример бесконечного генератора:

def infinite_generator():
    i = 0
    while True:
        yield i
        i += 1

for num in infinite_generator():
    print(num)
    if num > 10:
        break  # чтобы не печатать бесконечно

Бесконечный итератор можно создать, реализовав класс с методом iter и next, где next всегда возвращает значение и не вызывает исключение StopIteration:

class InfiniteIterator:
    def __init__(self):
        self.i = 0
    def __iter__(self):
        return self
    def __next__(self):
        value = self.i
        self.i += 1
        return value

it = InfiniteIterator()
for num in it:
    print(num)
    if num > 10:
        break

Важно помнить, что при использовании бесконечных итераторов нужно предусматривать условия выхода, чтобы избежать бесконечных циклов.