Sobes.tech
Junior — Middle
71

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

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

sobes.tech AI

Метод __iter__ в Python определяет объект как итерируемый, то есть таким, по которому можно проходить в цикле for или использовать в других контекстах, где требуется итерация.

Когда вызывается iter(obj), Python пытается вызвать у объекта метод __iter__, который должен возвращать итератор — объект с методом __next__.

Пример реализации собственного итерируемого объекта:

class CountDown:
    def __init__(self, start):
        self.current = start

    def __iter__(self):
        return self

    def __next__(self):
        if self.current <= 0:
            raise StopIteration
        val = self.current
        self.current -= 1
        return val

for num in CountDown(3):
    print(num)

Здесь __iter__ возвращает сам объект, который реализует __next__, позволяя использовать его в цикле for. Таким образом, __iter__ играет ключевую роль в протоколе итерации Python.