Назад к вопросам
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
Важно помнить, что при использовании бесконечных итераторов нужно предусматривать условия выхода, чтобы избежать бесконечных циклов.