Sobes.tech
Back to questions
Junior — Middle
63

Можете объяснить, что делает метод __iter__ в контексте итераторов в Python?

Answer from AI

sobes.tech AI

Метод __iter__ в Python определяет объект как итерируемый. Он должен возвращать итератор — объект, который реализует метод __next__.

Когда вы используете цикл for или функцию list() на объекте, Python вызывает у него __iter__, чтобы получить итератор, а затем последовательно вызывает __next__ для получения элементов.

Пример:

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)

Этот код выведет числа от 1 до 3.