В чем разница между return и yield
Python
Middle
Аэрофлот
В чем разница между return и yield
Ответы
Основное отличие между `return` и `yield` в Python заключается в том, что `return` завершает выполнение функции и возвращает значение, а `yield` приостанавливает выполнение функции, сохраняя её состояние, и возвращает значение по требованию (ленивое вычисление).
Функция с `yield` становится генератором, который можно итерировать:
```
def generator_example():
yield 1
yield 2
yield 3
gen = generator_example()
print(next(gen)) # 1
print(next(gen)) # 2
```
Ключевые отличия:
- `return` — одноразовый выход из функции.
- `yield` — позволяет функции возвращать значения по частям, сохраняя состояние между вызовами.
- Генераторы (`yield`) экономят память, так как не хранят все элементы сразу.
Пример с `return`:
```
def sum_numbers(a, b):
return a + b # функция завершается после return
```