Sobes.tech
Назад к вопросам
Junior — Middle
59

Объясните, что представляет собой метод __next__ в итераторах Python и как он работает

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

sobes.tech AI

Метод __next__ в Python — это специальный метод, который определяет поведение итератора при переходе к следующему элементу. Когда вызывается функция next() на объекте-итераторе, Python вызывает именно этот метод.

Если в итераторе есть следующий элемент, __next__ возвращает его. Если элементов больше нет, метод должен вызвать исключение StopIteration, чтобы сигнализировать об окончании итерации.

Пример простого итератора с реализацией __next__:

class CountUpTo:
    def __init__(self, max):
        self.max = max
        self.current = 0

    def __iter__(self):
        return self

    def __next__(self):
        if self.current < self.max:
            self.current += 1
            return self.current
        else:
            raise StopIteration

counter = CountUpTo(3)
for number in counter:
    print(number)

Вывод:

1
2
3

Таким образом, __next__ управляет последовательным получением элементов и завершением итерации.