[Python] Funzioni come moduli

Alessandro Dentella sandro a e-den.it
Lun 30 Giu 2008 18:26:21 CEST


> > e di volerlo usare così
> > 
> >     LOCS = {}
> >     execfile('plugin_A.py', {}, LOCS)
> >     
> >     a = LOCS['A']()
> >     a.test()
> >     
> > 
> > ti verrà sollevato l'errore che perchè 'a' non vede __più__ il modulo
> > sys.
> 
> Il problema e' che usi un dizionario per ambiente globale che pero' poi
> butti via.
> 
> Il codice seguente funziona come ci si aspetta:
> 
> In [1]: ENV = {}
> In [3]: execfile('plugin_A.py', ENV)
> In [5]: a = ENV['A']()
> In [6]: a.test()


certo ma a quel punto ogni variabile viene importata nel namespace del
chiamante e -proprio per dei plugin che possono essre fatti da terze parti-
non so quanto sia opportuno. Chi mi assicura che non ridefinisca nomi di
variabili che ho in uso?

*:-)



Maggiori informazioni sulla lista Python