[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