Какой результат выполнения метода __iter__ в Python?

Метод iter в Python возвращает итератор объекта.

Короткий ответ

Что ответить на собеседовании

Метод iter в Python возвращает итератор объекта. Этот итератор должен реализовывать метод next, который при каждом вызове возвращает следующий элемент последовательности, а при достижении конца — возбуждает исключение StopIteration.

Подробный разбор

Ответ с пояснениями

Условие

Какой результат выполнения метода 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

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее