[Python] Istanziare oggetti dinamicamente

Manlio Perillo manlio_perillo a libero.it
Lun 16 Apr 2007 14:43:54 CEST


Sbaush ha scritto:
> Ciao a tutti.
> Ho un problema al quale non ho trovato una soluzione nonostante la
> ricerca on web, e riguarda la creazione di istanze di classi
> richiamandole attraverso variabili.
> Mi spiego:
> Ho una classe chiamata ad esempio MyClass e una MyClass2.
> E' possibile istanziare la classe senza "conoscerne" il nome? Cioè se
> ho una stringa con dentro il nome della classe, è possibile istanziare
> la classe usando il nome dentro la stringa?

Si.
Se le definizioni delle classi sono in un unico modulo, puoi fare:
theClass1 = globals()['MyClass']

Un modo più corretto di procedere è creare un registro (che può essere 
un semplice dizionario) in cui registri le tue classi.

Ad esempio:

registry = {}
registry['MyClass'] = MyClass

...

theClass1 = globals()['MyClass']

 > [...]


Saluti  Manlio Perillo


Maggiori informazioni sulla lista Python