Sobes.tech
Junior — Middle
80

Python итераторларында __iter__ әдісі не істейтінін түсіндіре аласыз ба?

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.