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