Python: Para que serve o yield? quando utilizar?
Neste artigo vamos aprender para que serve o yield, que basicamente cria um generator, ou seja, uma lista de dados que é consumida por demanda.

Fala programador(a), beleza? Bora aprender mais sobre Python!
Antes de entender o que é o yield, há dois conceitos que você precisa compreender
Que são: iterações e generators
As iterações
Você pode utilizar uma estrutura como o for para percorrer cada item de uma lista
Isso é chamado de iteração, veja um exemplo:
lista = ['hora','de','codar'] for item in lista: print(item)
Que gera a saída:
hora de codar
As iterações são boas por que você pode percorrer uma lista, seja ela do tamanho que for, e executar uma lógica diferente com base em cada valor apresentado ou inserido nela
Os generators
Generators são basicamente valores gerados por iterações, que não são salvos em memória
O generator vai calcular cada um dos valores da iteração e podemos utilizar este valor como quisermos também
Veja um exemplo:
umgenerator = (x+10 for x in range(5))
for item in umgenerator:
print('este é o x + 10: ' + str(item))
Que gera esta saída:
este é o x + 10: 10 este é o x + 10: 11 este é o x + 10: 12 este é o x + 10: 13 este é o x + 10: 14
E depois dessa execução, o generator não poderá ser mais utilizado, essa é uma particularidade desta instrução
E o yield?
Yield é basicamente uma palavra chave que é utilizada semelhante ao return
Porém esta função retorna um generator!
Veja o exemplo:
def utilizandoYield(x):
for i in range(x):
if(i % 2 == 0):
yield 'par'
else:
yield 'impar'
novogenerator = utilizandoYield(10)
for i in novogenerator:
print(i)
Esta função vai gerar um generator com impar ou par, dependendo do número da iteração, e o comprimento da lista também depende do parâmetro passado
Mas a ideia central aqui é o yield gerando um generator
Então aqui temos a seguinte saída:
par impar par impar par impar par impar par impar
E quando usar generators?
Quando temos, por exemplo, listas muito grandes e não queremos ter essa lista alocada em nossa memória
Então partimos para a estratégia de generators para economizar recursos
Que podem ser feitos com a primeira maneira ensina com loop ou a base de yield
Conclusão
Neste artigo vimos para que serve o yield e também um exemplo de quando devemos utilizá-lo
Basicamente o yield cria um generator com base no que retornaria de uma função
Devemos utilizar o yield ou o generator quando há uma lista muito grande que queremos lidar, para não termos que salvar esta na memória
Confira também nosso catálogo de cursos gratuitos, com aulas semanais no YouTube
Formações
Formação Vibe Coding
Do Prompt ao Produto: Crie Software Real com IA
- 473 aulas
- 20 projetos
- 39h 26min
Blog | Mais populares
As diferenças de var, let e const
Como fazer redirecionamento com PHP
Neste artigo você vai aprender a como fazer redirecionamento com PHP, utilizaremos abordagens fáceis de entender e de aplicar Fala programador(a), beleza? Bora aprender mais […]
Checklist de segurança n8n VPS pública: guia essencial para proteger sua instalação
Checklist de segurança n8n VPS pública: guia essencial para proteger sua instalação A popularidade da automação de processos com o n8n está em alta, principalmente […]