yield Produção do gerador
Última atualização: 2026-09-22
yield Produção do gerador
yield transforma a função em um gerador; a cada next() a função executa até o yield, retorna o valor e pausa.
| Categoria | Palavras-chave e Instruções |
|---|---|
| Tipo | Palavra-chave / Instrução |
| Versão do Python | all |
📝 Sintaxe
yield [expression]
▶ Exemplo
Edite o código, clique em Executar e veja o resultado no painel de saída:
Saída:
[0, 1, 2]
🏷️ Palavras-chave / Instruções relacionadas
💡 Casos relacionados
Mais estudos de caso em breve — aguarde.
❓ Perguntas frequentes
QQual é a diferença entre `yield` e `return`?
A`return` encerra a função e retorna um valor; `yield` transforma a função num gerador. Cada `next()` executa até o `yield`, retorna um valor e pausa; a próxima chamada continua de onde parou.
QPor que uma função contendo `yield` não é executada quando chamada?
APorque a chamada apenas cria um objeto gerador. O corpo da função não começa a rodar de fato até o primeiro `next()` (ou um laço `for`, ou uma conversão `list()`).
QUm gerador pode ser iterado mais de uma vez?
ANão. Um gerador é descartável: uma vez esgotado, está acabado, e uma iteração posterior não produz nada. Para percorrer repetidamente, primeiro converta o resultado numa lista ou crie um novo gerador.
QO que significa `yield from`?
A`yield from iterable` é uma abreviação para `for x in iterable: yield x`. Dentro de um gerador, ele «delega» para outro iterável, produzindo os elementos um a um.