[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