Iterator
Итератор - это объект с методами __iter__() и __next__(), который позволяет проходиться по элементам коллекции поочерёдно, по одному за раз.
Когда элементов больше нет, __next__() вызывает исключение StopIteration.
Подробный ответ#
Протокол итерации: Объект считается итератором, если он поддерживает два метода:
__iter__(self): Возвращает сам объект итератора. Это позволяет итераторам быть итерируемыми.__next__(self): Возвращает следующий элемент из последовательности. Если элементов больше нет, должен вызвать StopIteration.
Использование:#
Цикл for в Python неявно использует итераторы.
Когда вы пишете for item in iterable:, python в начале вызывает iter(iterable),
чтобы получить итератор, а затем многократно вызывает next(iterator) до тех пор, пока не будет вызвано
StopIteration.
Преимущества итераторов:#
- Эффективность памяти: Элементы генерируются по требованию (lazy evaluation), а не хранятся все сразу в памяти. Это позволяет работать с огромными или даже бесконечными последовательностями.
- Универсальность: Единый интерфейс для работы с разными типами коллекций — списками, файлами, генераторами, базами данных.
- Простота использования: Скрывают сложность последовательного доступа за простым интерфейсом цикла for.