Итераторы
Что такое итератор?
Итератор — интерфейс, предоставляющий доступ к элементам коллекции (массива или контейнера) и навигацию по ним. В различных системах итераторы могут иметь разные общепринятые названия. В терминах систем управления базами данных итераторы называются курсорами. В простейшем случае итератором в низкоуровневых языках является указатель.
В чём разница между итератором и генератором?
Эти термины тесно связаны (любой генератор — это итератор), их довольно часто путают, что иногда приводит к недопониманию. Итератор — более общая концепция. Это объект, у которого определены два метода: __next__ и __iter__. С другой стороны, генератор — это итератор. Но не наоборот. Генератор может получаться использованием ключевого слова yield в теле функции.
def squares(start, stop):
for i in range(start, stop):
yield i * i
generator = squares(a, b)