Il 16/04/07, Sbaush<[EMAIL PROTECTED]> 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
_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python

Rispondere a