Python · Intermediário · Inglês · Técnico
yield
Palavra-chave que transforma uma função em generator: ela devolve um valor, pausa guardando seu estado e continua de onde parou na próxima iteração.
Onde usar
Aparece em funções que produzem sequências grandes ou infinitas, como ler linhas de um arquivo. A diferença para o return é que o yield não encerra a função.
Em código
def pares(limite):
for n in range(0, limite, 2):
yield n
g = pares(5)
print(next(g), next(g))Exemplos
Use yield so we don't build the whole list.
Use yield para não montar a lista inteira.
Calling a function with yield returns a generator object.
Chamar uma função com yield devolve um objeto generator.
Cuidado
Uma função com yield não executa nada quando chamada; ela só devolve o generator, e o corpo roda conforme os valores são pedidos.
Antônimos
return
Origem
Do inglês to yield, produzir, ceder.