[Python] With... as... per sopprimere NameError
Manlio Perillo
manlio.perillo a gmail.com
Mar 14 Maggio 2013 17:37:54 CEST
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Il 14/05/2013 17:24, Pietro Battiston ha scritto:
> [...]
> OK, "manutenzione" non era la parola giusta, intendevo più
> "leggibilità" (che chiaramente influisce sulla manutenzione). E in
> realtà non finisce qui: è frequentissimo anche scrivere
>
> d["x"][condizione] + d["y"][condizione]
>
> ("condizione" è a sua volta un oggetto pandas, qualcosa come "d.year >
> 1985"), che può sì diventare
>
> d.x[condizione] + d.y[condizione]
>
> ma è comunque molto peggio di
>
> with d.context( condizione ):
> x + y
>
Con Python credo tu possa al massimo ottenere, abbastanza facilmente,
qualcosa come:
with obj.context(condizione) as d:
d.x + d.y
Non è possibile "iniettare" delle variabili locali.
Al massimo puoi "iniettare" delle variabili globali o nel dizionario dei
builtins, pregando che nella funzione non viene definita una variabile
con lo stesso nome (che avrà **sempre** la precedenza).
> [...]
Ciao Manlio
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
iEYEARECAAYFAlGSWlIACgkQscQJ24LbaURB6gCfZNO7dGPr/6Wels7zt9ymn2f9
LHIAn3WudvLowfWKHbmTK1UpxFqzvCzV
=23Yg
-----END PGP SIGNATURE-----
Maggiori informazioni sulla lista
Python