Sobes.tech
Назад к вопросам
Junior — Middle
61

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

Ответ от нейросети

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