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

Andrea Francia andrea a andreafrancia.it
Mar 14 Maggio 2013 13:55:43 CEST


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 :/

Ciao
-- 
Andrea Francia http://andreafrancia.it
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20130514/47741872/attachment.html>


Maggiori informazioni sulla lista Python