Sobes.tech
Junior — Middle
84

Mik a kötelező összetevői és a __next__ metódus viselkedése a Python iterátorokban?

Válasz az MI-től

sobes.tech MI

Метод __next__ в итераторах Python обязателен для реализации протокола итератора. Он должен:

  • Возвращать следующий элемент последовательности при каждом вызове.
  • При достижении конца последовательности возбуждать исключение StopIteration.

Пример:

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:
            raise StopIteration
        self.current += 1
        return self.current

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

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