Метод iter в Python возвращает итератор объекта. Этот итератор должен реализовывать метод next, который при каждом вызове возвращает следующий элемент последовательности, а при достижении конца — возбуждает исключение StopIteration.
Какой результат выполнения метода __iter__ в Python?
Метод iter в Python возвращает итератор объекта.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Какой результат выполнения метода iter в Python?
Ответ
Метод __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