scopo della funzione “invia” del generatore python?

| | | |

Qualcuno può darmi un esempio del motivo per cui esiste la funzione "invia" associata alla funzione generatore di Python? Capisco perfettamente la funzione di resa. Tuttavia, la funzione di invio mi confonde. La documentazione su questo metodo è contorta:

generator.send(value) 

Riprende l'esecuzione e “send” un valore nel funzione del generatore. L'argomento valore diventa il risultato dell'espressione di rendimento corrente. Il metodo send() restituisce il valore successivo fornito dal generatore, o aumenta StopIteration se il generatore esce senza fornire un altro valore.

Cosa significa? Ho pensato che il valore fosse l'input per la funzione? La frase "Il metodo send() restituisce il valore successivo prodotto dal generatore" sembra essere anche lo scopo esatto della funzione yield; yield restituisce il valore successivo prodotto dal generatore...

Qualcuno può darmi un esempio di un generatore che utilizza send che realizza qualcosa che yield non può?