[Python] throw ad un generatore: perché non riparte dall'inizio?
Marco Beri
marcoberi a gmail.com
Gio 28 Lug 2022 09:40:25 CEST
On Thu, 28 Jul 2022 at 08:57, Marco De Paoli <depaolim a gmail.com> wrote:
> =
> ---><--- begin test_gen.py ---><---
> def gen():
> while True:
> try:
> yield "A"
> yield "B"
> yield "C"
> except Exception as ex:
> print("catched exception", ex)
>
>
> g = gen()
> you_can_specify_any_number_of_steps = 3
> for idx in range(you_can_specify_any_number_of_steps):
> print("result:", g.send(None))
> print("throw...")
> g.throw(Exception("BOOM"))
> print("result:", g.send(None), "*** I was expecting A and I get B, why?!?
> ***")
> print("result:", g.send(None))
>
>
Se invece di g.throw(Exception("BOOM")) scrivi print(
g.throw(Exception("BOOM")))
Ritroverai il tuo "A" :-)
Ciao.
Marco.
>
>
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20220728/8d7dc4c2/attachment.html>
Maggiori informazioni sulla lista
Python