> Что должно присутствовать у объекта, чтобы он был итератором в Python (Python)

Уровень: senior · Роль: backend · Категория: Технические вопросы

Компании: Сбер

Стек: Python

> Пример ответа

Чтобы объект был итератором в Python, у него должны быть реализованы два метода протокола итератора:

  1. __iter__() - возвращает сам объект итератора (обычно self). Этот метод делает объект итерируемым (т.е. пригодным для использования в цикле for).
  2. __next__() - возвращает следующий элемент последовательности. Если элементов больше нет, метод должен выбросить исключение StopIteration.

Пример минимального итератора:

PYTHON
class MyIterator:
def __init__(self, data):
self.data = data
self.index = 0
def __iter__(self):
return self # итератор возвращает сам себя
def __next__(self):
if self.index >= len(self.data):
raise StopIteration
value = self.data[self.index]
self.index += 1
return value

Такой объект можно использовать в цикле for или с функцией next(). Отличие от итерируемого объекта (например, списка) в том, что итератор хранит состояние текущей позиции и "исчерпывается" после прохода.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью