Оператор
yield действует похожим на return образом, но с некоторыми отличиями. Он приостанавливает выполнение функции и возвращает указанное значение, оставляя возможность продолжить выполнение функции с того момента, где она была поставлена на паузу. Пример работы такой функции и рекомендации по её использованию можно прочитать в этой небольшой статье:
https://pythonru.com/osnovy/kogda-stoit-ispolzovat-yield-vmesto-return-v-python