Встречается на собеседованиях • сегодня

Зачем нужен yield в генераторе на Python

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

Пример:

python
def count_up_to(n):
    i = 1
    while i <= n:
        yield i
        i += 1

# Использование:
gen = count_up_to(3)
print(next(gen))  # 1
print(next(gen))  # 2
print(next(gen))  # 3

Преимущества:

  • Ленивые вычисления (элементы генерируются по требованию, а не все сразу).
  • Экономия памяти (не нужно хранить всю последовательность в памяти).
  • Возможность работы с бесконечными последовательностями.

Генераторы часто используют в циклах for, map, filter или при обработке больших данных.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы