Что такое yield в Python

Python Middle Аэрофлот
Что такое yield в Python
Ответы
`yield` — это ключевое слово в Python, используемое для создания генераторов. Оно позволяет функции возвращать значения по одному, приостанавливая выполнение между вызовами, вместо возврата всех значений сразу (как в обычных функциях с `return`). **Как это работает:** - При вызове функции с `yield` она возвращает генератор, а не выполняет код сразу. - При каждом вызове `next()` генератор выполняет код до следующего `yield`, возвращает значение и приостанавливается. - При следующем вызове `next()` выполнение продолжается с места остановки. **Пример:** ``` def count_up_to(n): i = 1 while i <= n: yield i i += 1 counter = count_up_to(3) print(next(counter)) # 1 print(next(counter)) # 2 print(next(counter)) # 3 ``` **Преимущества:** - Экономия памяти (значения генерируются "на лету") - Ленивые вычисления (генерация только по запросу) - Возможность работы с бесконечными последовательностями Генераторы часто используются в циклах `for`, где `next()` вызывается автоматически.