Sobes.tech
Back to questions
Junior — Middle
65

Какова роль метода __iter__ в реализации итераторов в Python?

Companies where asked
АО К-Технологии

Answer from AI

sobes.tech AI

Метод __iter__ в Python определяет объект как итерируемый. Он должен возвращать итератор — объект, который реализует метод __next__. Благодаря этому можно использовать объект в циклах 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

Здесь __iter__ возвращает сам объект, который реализует __next__. Таким образом, __iter__ — это точка входа для создания итератора из объекта.