[Python] Istanziare oggetti dinamicamente
Carlo C8E Miron
carlo.miron a gmail.com
Lun 16 Apr 2007 14:45:00 CEST
Il 16/04/07, Sbaush<sbaush a gmail.com> 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?
> In questa maniera otterrei una automatizzazione dell'istanziazione di
> una classe, cosicchè cambiando il valore della stringa otterrei
> l'istanza della classe con il nome della stringa...
> Più o meno come si fa per l'import dinamico di __import__(), ma
> orientato all'uso con gli oggetti.
>
> Mi piacerebbe fare una cosa del genere:
>
> theClass1 = 'MyClass'
> theClass2 = 'MyClass2'
> theClass1()
> theClass2()
>
> Non mi piacerebbe dover inserire controlli sulla stringa riguardanti
> il suo contenuto, del tipo
> if theClass1=='MyClass':
> MyClass()
> if theClass2=='MyClass2':
> MyClass2()
Qualcosa tipo:
>>> class One(object): pass
...
>>> class Two(object): pass
...
>>> an_object = vars()["One"]()
>>> an_object.__class__
<class '__main__.One'>
?
> Si è capito il mio problema?
> Grazie Mille.
Prego, ciao
(c)
--
Carlo C8E Miron
Open Classes Solution Architect
Maggiori informazioni sulla lista
Python