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

Можете объяснить, как работает метод __next__ в итераторах Python?

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

sobes.tech AI

Метод __next__ в Python — это ключевой элемент протокола итератора. Он вызывается для получения следующего элемента из итератора. Если элементы ещё есть, метод возвращает следующий; если элементы закончились, он должен вызвать исключение StopIteration, чтобы сигнализировать об окончании итерации.

Пример простого итератора:

class Counter:
    def __init__(self, limit):
        self.current = 0
        self.limit = limit

    def __iter__(self):
        return self

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

for num in Counter(3):
    print(num)  # Выведет 1, 2, 3

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