[Python] With... as... per sopprimere NameError

Pietro Battiston me a pietrobattiston.it
Mar 14 Maggio 2013 17:30:13 CEST


Il giorno mar, 14/05/2013 alle 13.55 +0200, Andrea Francia ha scritto:
> 
> 
> 2013/5/14 Pietro Battiston <me a pietrobattiston.it>
>         Salve a tutti,
>         
>         sto usando con ragionevole soddisfazione del codice di questo
>         tipo:¹
>         
>         class TuDimmiCosaVuoiCheCiPensoIo():
>             def __init__(self, d):
>                 self._d = d
>                 self._pres = {}
>             def __enter__(self):
>                 for key in self._d:
>                     if key in globals():
>                         self._pres[key] = globals()[key]
>                 globals()[key] = self._d[key]
>             def __exit__(self, type, value, traceback):
>                 for key in self._d:
>                     if key in self._pres and globals()[key] ==
>         self._d[key]:
>                         # Not changed - restore:
>                         globals()[key] = self._pres[key]
>         
>         a = "non ti sto mica salutando"
>         
>         print a
>         with TuDimmiCosaVuoiCheCiPensoIo( {"a" : "ciao"} ):
>             print a
>         
>         print a
> 
> 
> Ad occhio non sembra reentrant :/
> 


Non l'ho capita (e una googlata non mi aiuta)...

Pietro




Maggiori informazioni sulla lista Python