Можно ли реализовать в Python итератор, который не имеет конечной точки завершения?

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

Короткий ответ

Что ответить на собеседовании

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

Подробный разбор

Ответ с пояснениями

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

Пример бесконечного итератора, который генерирует натуральные числа:

class InfiniteCounter:
    def __init__(self):
        self.num = 0

    def __iter__(self):
        return self

    def __next__(self):
        self.num += 1
        return self.num

# Использование:
counter = InfiniteCounter()
for i in counter:
    print(i)
    if i >= 10:
        break  # чтобы не зациклиться бесконечно

Также в стандартной библиотеке есть бесконечные итераторы, например itertools.count().

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее