Back to questions
Junior — Middle
69
Какова роль специальных методов с двойным подчеркиванием в реализации итераторов в Python?
Answer from AI
sobes.tech AI
В Python специальные методы с двойным подчеркиванием (так называемые dunder-методы) играют ключевую роль в реализации итераторов. Для создания итератора в классе нужно определить методы:
__iter__(self): возвращает сам итератор (обычноself). Этот метод вызывается, когда объект используется в циклеforили в функцииiter().__next__(self): возвращает следующий элемент последовательности. При достижении конца последовательности должен возбуждать исключение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:
self.current += 1
return self.current
else:
raise StopIteration
for number in CountUpTo(5):
print(number)
Таким образом, dunder-методы __iter__ и __next__ позволяют объектам вести себя как итераторы, поддерживая протокол итерации в Python.