Основные отличия использования yield и return в Python:
- Оператор return возвращает только одно значение. 1 Оператор yield может возвращать серию результатов в виде объекта-генератора. 1
- Return выходит из функции, а в случае цикла он закрывает цикл. 1 Это последний оператор, который нужно разместить внутри функции. 1
- Внутри функции может быть более одного оператора yield, в то время как функция должна иметь только один return. 1
- Оператор return может выполняться только один раз, а оператор yield — несколько раз. 1
- Return помещается внутри обычной функции Python, а оператор yield преобразует обычную функцию в функцию-генератор. 1
Оператор yield приостанавливает выполнение функции и возвращает указанное значение обратно вызывающей стороне, при этом происходит сохранение состояния, чтобы функция могла возобновить выполнение с того места, на котором она остановилась. 5