Il giorno mar, 14/05/2013 alle 17.37 +0200, Manlio Perillo ha scritto: > 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
È già un'ottima idea! Provo subito a scrivere una cosa del genere. > 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). In fondo, posso pensare che finché si lavora con un solo dataframe (che, per la cronaca, è tutto quello che sanno fare gli altri linguaggi che ho menzionato), si inetta le variabili globali all'inizio, senza neanche bisogno del "with ...", e se si lavora con più dataframe, lo si fa a costo di quel "d."... grazie mille ciao Pietro _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python