Итератор последовательно выдаёт элементы, генератор удобно реализует такой обход через yield, а декоратор преобразует функцию или класс. Эти механизмы решают разные задачи и могут сочетаться.
Итераторы, генераторы и декораторы: что это такое, как работают?
Итератор последовательно выдаёт элементы, генератор удобно реализует такой обход через yield, а декоратор преобразует функцию или класс. Эти механизмы решают разные задачи и могут сочетаться.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Итератор последовательно выдаёт элементы, генератор удобно реализует такой обход через yield, а декоратор преобразует функцию или класс. Эти механизмы решают разные задачи и могут сочетаться.
Итератор имеет next и завершается StopIteration. Генератор сохраняет локальное состояние между запросами элемента. Декоратор получает объект и возвращает замену, например обёртку для логирования. Ленивый генератор не следует путать с повторно обходимым списком, а декоратор — с самим вызовом обёрнутой функции.