Junior — Middle
113
Quelle est la différence entre les opérateurs return et yield dans le contexte des fonctions et des générateurs?
Entreprises à qui on a demandé
Réponse de l'IA
sobes.tech IA
Оператор 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 позволяет создавать итераторы, возвращая значения по одному и сохраняя состояние функции между вызовами.