Sobes.tech
Back to questions
Junior — Middle
57

Какие функции необходимо реализовать для создания собственного итератора в классе?

Answer from AI

sobes.tech AI

Для создания собственного итератора в классе на Python необходимо реализовать два метода:

  1. __iter__(self) — должен возвращать объект итератора. Обычно это сам объект, если он реализует метод __next__.
  2. __next__(self) — возвращает следующий элемент последовательности. При достижении конца должен вызвать исключение StopIteration.

Пример реализации итератора в классе:

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

    def __iter__(self):
        return self

    def __next__(self):
        if self.current >= self.end:
            raise StopIteration
        val = self.current
        self.current += 1
        return val

for i in MyRange(1, 4):
    print(i)  # Выведет 1, 2, 3

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