Sobes.tech
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 позволяет создавать итераторы, возвращая значения по одному и сохраняя состояние функции между вызовами.