Junior — Middle
86
Quelles fonctions doivent être implémentées pour créer un itérateur personnalisé dans une classe?
Réponse de l'IA
sobes.tech IA
Для создания собственного итератора в классе на 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 и других контекстах, ожидающих итератор.