> Как работает ключевое слово yield в Python (Python)

Уровень: senior · Роль: backend · Язык: Python · Категория: Технические вопросы

Компании: К Технологии, Сбер, ARX

Стек: Python

> Пример ответа

Ключевое слово yield в Python используется для создания генераторов - функций, которые возвращают итератор и могут приостанавливать своё выполнение, сохраняя состояние между вызовами.

Когда функция содержит yield, она перестаёт быть обычной функцией и становится генераторной. При каждом вызове next() или при итерации в цикле for выполнение функции продолжается с места последнего yield, а не с начала. Это позволяет эффективно работать с большими или бесконечными последовательностями данных, не загружая их в память целиком.

Пример:

PYTHON
def count_up_to(n):
i = 1
while i <= n:
yield i
i += 1
for num in count_up_to(5):
print(num) # Выведет: 1 2 3 4 5

В отличие от return, который завершает функцию и возвращает одно значение, yield возвращает значение и приостанавливает функцию. Генераторы также поддерживают методы send(), throw() и close() для двустороннего обмена данными и управления исключениями.

Ключевое преимущество yield - ленивые вычисления: генератор вычисляет следующее значение только по запросу, что экономит память и время при обработке потоков данных.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью