DEVOPSTRAINER
Вопросы / Python

Чем итератор отличается от генератора? Что такое протокол итератора и ленивость?

Краткий ответ

Итератор — объект, по которому можно последовательно перебирать элементы: он реализует методы __iter__() и __next__(), выдаёт по одному элементу и бросает StopIteration, когда они кончились. Генератор — частный (и самый удобный) способ создать итератор через функцию с yield или генераторное выражение. Генератор ленив: вычисляет значения по требованию и хранит в памяти только текущее состояние, а не всю коллекцию.

Ещё вопросы по теме «Python»

Готовишься к DevOps-собеседованию?
Полные разборы вопросов, карточки с интервальным повторением, квизы и песочница с реальными сломанными Linux-серверами — бесплатно после входа.
Открыть тренажёр →