Além disso, exploramos expressões geradoras, geradores de encadeamento, dutos de processamento de dados, corotas para comunicação bidirecional e programação assíncrona com asyncio.Ao contrário da instrução RETURN, que encerra a função e retorna um único valor, o rendimento permite que a função produza uma sequência de valores, uma de cada vez.Em seguida, investigamos técnicas avançadas, como gerar sequências infinitas, pausas e retomar a execução, enviar valores para um gerador e manuseio de exceção.Ao dominar a arte dos geradores, você pode aproveitar seus benefícios para otimizar o uso da memória, lidar com grandes conjuntos de dados e processar fluxos de dados com eficiência.Quando chamado, uma função de gerador retorna um objeto gerador, que pode ser iterado usando um loop ou outras construções de consumo de iterável.
Fonte: https://andrewodendaal.com/mastering-pythons-yield-a-comprehensive-guide-to-advanced-usage/