class ClassA: pass
mytype = type(ClassA)
Utilizzo di mytype, come si crea un'istanza di ClassA?Creare un'istanza, ho già il tipo
Nota che sono NON alla ricerca di questo come la mia risposta :)
instance = ClassA()
So che in questo esempio, questo è tutto quello che dovete fare, ma supponiamo che avete questo tipo (MyType) , non ne sai nulla e devi creare un'istanza di esso.
Ho provato a chiamare mytype() e restituisce un errore affermando che type() accetta 1 o 3 argomenti. Immagino che questi argomenti possano essere correlati a qualunque argomento tu voglia passare nel metodo init dell'oggetto che si sta creando.
Nota: ho ricevuto una serie di domande su come creare un oggetto con una stringa che rappresenta il nome completo. Nota che qui, ho già un tipo quindi è un po 'diverso? Credo?
EDIT ... speravo che avrei potuto fare l'equivalente del seguente codice .Net:
class A {}
class Program
{
static void Main(string[] args)
{
Type type = typeof(A);
// Given the type, I can create a new instance
object new_instance = Activator.CreateInstance(type);
}
}
ho dato per scontato che in Python, tipo (ClassA) ha dato qualcosa di nuovo che ho potuto poi utilizzare per creare un'istanza di ClassA. Sembra che abbia frainteso il tipo in python.
mytype = tipo (ClassA) vi darà un oggetto di classe. Sospetto che non sia quello che intendevi. –
È quello che intendevo, penso :) Vedi la mia modifica sopra con l'esempio .Net se questo aiuta a chiarire qualsiasi cosa. –