Итерируемый объект — это объект, от которого можно получить итератор. Он реализует метод __iter__(), который возвращает итератор.
Итератор — это объект, который предоставляет доступ к элементам коллекции по одному за раз. Он реализует методы __iter__() и __next__(). Метод __next__() возвращает следующий элемент итерации или вызывает исключение StopIteration при их исчерпании.
python
Ключевое отличие: итерируемый объект предоставляет итератор, а итератор предоставляет элементы.
Сравнение:
| Характеристика | Итерируемый объект | Итератор |
|---|---|---|
| Реализует метод | __iter__() | __iter__(), __next__() |
| Действие | Возвращает итератор | Возвращает следующий элемент |
| Состояние | Содержит данные | Содержит текущее положение |
| Возобновляемость | Можно получить несколько итераторов | Однократное использование |