Разница между return и yield в программировании заключается в следующем:
- Оператор return завершает функцию и возвращает только одно значение. 1 Он выходит из функции и в случае цикла закрывает цикл. 1
- Оператор yield создаёт объект-генератор и может возвращать несколько значений, не прерывая выполнение программы. 1 Функция, содержащая yield, приостанавливает выполнение программы, отправляет значение результата вызывающей стороне и возобновляет выполнение с последнего yield. 1
Кроме того, оператор return может выполняться только один раз, в то время как оператор yield может выполняться несколько раз. 1
Также return возвращает конкретную переменную или значение выражения, в то время как yield возвращает итератор, который можно итерировать с помощью next(). 2