Back to questions
Junior — Middle
83
Можете объяснить, как работает метод __next__ в итераторах Python?
Answer from AI
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__ управляет последовательным доступом к элементам коллекции или генерации значений.