2. Что такое итератор?

2. Что такое итератор?.md

Итератор - это объект, который возвращает элементы по одному, при вызове next() и запоминая своё текущее состояние.

У итератор есть 2 ключевых метода:
__iter__() - возвращает сам объект.
__next__() - возвращает следующий элемент.
Когда элементы заканчиваются, выбрасывается StopIteration

Простое объяснение:
Представь, что у тебя есть коробка с числами.

Обычный список:

nums = [1, 2, 3]

Ты сразу видишь всё содержимое.

Итератор - это как коробка, из которой ты достаёшь по одному числу.
И коробка отвечает:
- 1
- потом 2
- потом 3
- Закончилось

Итератор вручную:

nums = iter([1, 2, 3])

print(next(nums))  #10
print(next(nums))  #20
print(next(nums))  #30

Итератор - это объет, реализующий методы __iter__() и __next__() и позволяет получать элементы по одному через next(), сохраняя своё состояние между вызовами.