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

Оглавление

  1. Введение в итераторы
  2. Протокол Итератора
  3. Создание простого итератора
  4. Создание класса итератора
  5. Использование итераторов с пользовательскими объектами
  6. Создание итерируемого объекта
  7. Заключение


1. Введение в итераторы

Итераторы — это объекты, которые реализуют протокол итераторов, позволяя вам последовательно перебирать элементы контейнера. Они обеспечивают более экономичный способ перебора больших наборов данных по сравнению с использованием списков или других структур данных. Встроенные типы данных Python, такие как списки и словари, по умолчанию являются итерируемыми.

2. Протокол Итератора

Протокол итератора требует, чтобы в объекте были реализованы два метода:

  • __iter__(): Этот метод возвращает сам объект итератора.
  • __next__(): Этот метод возвращает следующее значение итератора. Если больше нет элементов для возврата, возникает исключение StopIteration.


3. Создание простого итератора

Начнем с создания простого итератора, который генерирует последовательность чисел. Мы определим класс SimpleIterator, реализующий протокол итератора.

class SimpleIterator:
    def __init__(self…