Sobes.tech
Назад к вопросам
Junior — Middle
91

Какое различие между операторами return и yield в контексте функций и генераторов?

Компании, где спрашивали
АэрофлотАэрофлот

Ответ от нейросети

sobes.tech AI

Оператор return используется в функциях для возврата значения и завершения выполнения функции. После return функция прекращает работу и возвращает указанное значение.

Оператор yield используется в генераторах — специальных функциях, которые возвращают итератор. При вызове генератора выполнение функции приостанавливается на yield, возвращая значение, и может быть возобновлено позже с того же места. Это позволяет эффективно работать с последовательностями данных без необходимости хранить их целиком в памяти.

Пример:

# Функция с return
def func_return():
    return 1

# Генератор с yield
def func_yield():
    yield 1
    yield 2

print(func_return())       # Выведет: 1
print(list(func_yield()))  # Выведет: [1, 2]

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