Sobes.tech
Back to questions
Junior — Middle
61

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

Answer from AI

sobes.tech AI

Да, в 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().