Back to questions
Junior — Middle
53
Какие специальные методы необходимо реализовать для создания собственного объекта итератора?
Answer from AI
sobes.tech AI
Для создания собственного объекта итератора в Python необходимо реализовать два специальных метода:
-
__iter__(self)— должен возвращать сам объект итератора. Это позволяет использовать объект в циклах и других конструкциях, ожидающих итератор. -
__next__(self)— возвращает следующий элемент последовательности. При достижении конца последовательности должен возбуждать исключениеStopIteration.
Пример простого итератора, который возвращает числа от 1 до 3:
class MyIterator:
def __init__(self):
self.current = 1
self.max = 3
def __iter__(self):
return self
def __next__(self):
if self.current <= self.max:
val = self.current
self.current += 1
return val
else:
raise StopIteration
# Использование
for num in MyIterator():
print(num)