<div dir="ltr"><div>ciao lista!</div><div>ho una domanda sui generatori</div><div>Mi farebbe molto comodo usare la possibilità di mandare una eccezione ad un generatore: ma mi trovo con un comportamento imprevisto</div><div>Qui sotto trovate un frammento di codice che riproduce una sorta di "caso minimo" di quella che mi sembra una anomalia</div><div>Se avete voglia di provarlo credo che il codice sia più o meno autoesplicativo.</div><div>Quello che mi lascia perplesso è: perché il generatore, dopo aver gestito l'eccezione, non riparte dal restituire il valore "A"?</div><div><br></div><div>---><--- begin test_gen.py ---><---</div>def gen():<br>    while True:<br>        try:<br>            yield "A"<br>            yield "B"<br>            yield "C"<br>        except Exception as ex:<br>            print("catched exception", ex)<br><br><br>g = gen()<br>you_can_specify_any_number_of_steps = 3<br>for idx in range(you_can_specify_any_number_of_steps):<br>    print("result:", g.send(None))<br>print("throw...")<br>g.throw(Exception("BOOM"))<br>print("result:", g.send(None), "*** I was expecting A and I get B, why?!? ***")<br>print("result:", g.send(None))<br><div><br></div><div><div>---><--- end test_gen.py ---><---</div><br class="gmail-Apple-interchange-newline"></div></div>