Топы
Что такое генератор? Чем отличается от итератора?
Генератор — это особый тип итератора, который создается с помощью функции-генератора или генераторного выражения. Вместо return он использует ключевое слово yield для возврата значения, что позволяет генераторам работать «по требованию» и экономно использовать память, возвращая значения по одному за раз вместо того, чтобы хранить всю последовательность в памяти сразу.
Функция-генератор — это обычная функция, но вместо return она использует yield.
next() на объекте-генераторе, код функции выполняется до следующего yield, возвращает значение, а затем "засыпает" (часто такое поведение называется ленивыми вычислениями), сохраняя свое состояние.next(), функция возобновляет выполнение с того места, где остановилась.Ключевое слово yield: Отличает генератор от обычной функции. Оно "отдает" значение и приостанавливает выполнение функции, сохраняя ее локальное состояние.
Генераторное выражение: Похоже на списковое включение, но использует круглые скобки вместо квадратных и создает генератор, а не список: (x*x for x in range(5)).
Преимущества:
__iter__ и __next__.Отметьте свой прогресс