Sobes.tech
Junior — Middle
55

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

Companies where asked
Positive TechnologiesPositive Technologies

Answer from AI

sobes.tech AI

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

Пример:

class CountUpTo:
    def __init__(self, max):
        self.max = max

    def __iter__(self):
        self.current = 1
        return self

    def __next__(self):
        if self.current <= self.max:
            val = self.current
            self.current += 1
            return val
        else:
            raise StopIteration

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

Здесь __iter__ возвращает сам объект как итератор, позволяя пройтись по числам от 1 до 3.