yield

yield transforma uma função num gerador: entrega um valor, pausa e continua quando pedem outra vez.

Sintaxe

def path():
yield (0, 0)
yield (1, 0)
  • for x in path(): pede cada yield. list(path()) junta-os todos.

Exemplo

def count():
    yield 1
    yield 2

print(list(count()))

Saída:

[1, 2]

Erros comuns

  • return termina a função de imediato, por isso um segundo return nunca corre. Usa yield para enviar mais do que um valor.

Pratique