Back to questions
Junior — Middle
57
Какие функции необходимо реализовать для создания собственного итератора в классе?
Answer from AI
sobes.tech AI
Для создания собственного итератора в классе на Python необходимо реализовать два метода:
__iter__(self)— должен возвращать объект итератора. Обычно это сам объект, если он реализует метод__next__.__next__(self)— возвращает следующий элемент последовательности. При достижении конца должен вызвать исключениеStopIteration.
Пример реализации итератора в классе:
class MyRange:
def __init__(self, start, end):
self.current = start
self.end = end
def __iter__(self):
return self
def __next__(self):
if self.current >= self.end:
raise StopIteration
val = self.current
self.current += 1
return val
for i in MyRange(1, 4):
print(i) # Выведет 1, 2, 3
Таким образом, класс становится итерируемым объектом, который можно использовать в циклах for и других контекстах, ожидающих итератор.