Junior — Middle
65
Каковы обязательные компоненты и поведение метода __next__ в итераторах Python?
Ответ от нейросети
sobes.tech AI
Метод __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__ управляет последовательным доступом к элементам и сигнализирует о завершении итерации.