[PIPython] Modulo ConfigParser
Alex Martelli
aleaxit
Ven 19 Nov 2004 15:16:44 CET
On Monday 19 April 2004 02:29 pm, Andrea Manzini wrote:
> >Il mio quesito è il seguente:
> >All'interno del mio script python posso creare una variabile che abbia
> >nome preso dinamicamente dal file di config?
> >nel caso in oggetto vorrei poter creare una variabile chiamata
> >colore_sfondo e che abbia come valore il valore corrispondente nel file
> >di config.
>
> gli oggetti creati nello scope locale [o globale] sono memorizzati nell'
hash locals() [o global()]; questo array associativo puo' anche essere
manipolato direttamente:
> >>> nome="variabile"
> >>> locals()[nome]=10
> >>> print variabile*2
>
> 20
Nota che l'alterazione di locals NON e` supportata -- qui capita che funzioni,
ma prova un po' a vedere cosa succede se la fai dentro a una funzione (cosi`
che si tratti veramente di variabili locali). Spero che l'alterazione di
globals verra` pure ufficialmente deprecata in Python 2.4, e gradualmente
vengano offerti warning per dissuadere questa pessima prassi, sino infine a
proibirla del tutto in futuro.
Creare variabili con nomi determinati dinamicamente e` un pessimo approccio
alla programmazione, e non vi e` mai nessuna buona ragione di usarlo. Quello
che si pensa di fare al meglio in questo modo e` invece, invariabilmente,
meglio risolto usando liste, dizionari, o attributi di opportune istanze --
cioe` i vari approcci che Python permette di usare per gestire spazi dei
nomi. "inquinare" lo spazio dei nomi delle variabili, invece di usarne uno
separato, porta sostanzialmente solo problemi e difficolta`.
Alex
More information about the Python
mailing list