Sobes.tech
Back to questions
Junior — Middle
67

Каким образом в Python реализуется механизм итерации по объектам?

Companies where asked
Бергман Инфотех

Answer from AI

sobes.tech AI

В Python механизм итерации реализуется через протокол итераторов, который включает два метода: __iter__() и __next__().

  • Объект считается итерируемым, если у него есть метод __iter__(), возвращающий итератор.
  • Итератор — объект с методом __next__(), который при каждом вызове возвращает следующий элемент последовательности или возбуждает исключение StopIteration, когда элементы заканчиваются.

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

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

    def __iter__(self):
        return self

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

for number in CountUpTo(5):
    print(number)

Таким образом, цикл for автоматически вызывает __iter__() и затем многократно __next__() для получения элементов.