Это объект, который поддерживает функцию next() и помнит о том какой элемент будет браться следующим
__next__
. Этот метод возвращает следующий элемент, если он есть, или возвращает исключение StopIteration, когда элементы закончились.__iter__
- то есть, любой итератор является итерируемым объектом. Этот метод просто возвращает сам итераторiter
итерируемый объект.next
.StopIteration
.numbers = [1, 2, 3]
i = iter(numbers)
next(i) # 1
next(i) # 2
next(i) # 3
Traceback (most recent call last):
File "main.py", line 8, in <module>
print(next(i))
StopIteration
Аналогичные действия выполняются, когда цикл for проходится по списку, функция next() вызывается неявно:
for item in numbers:
print(item)
zip
, open