class ClassA: pass
mytype = type(ClassA)
Utilizando mytype, ¿cómo se crea una instancia de ClassA?Crear una instancia, ya tengo el tipo
Tenga en cuenta que estoy NO buscando esto como mi respuesta :)
instance = ClassA()
Sé que en este ejemplo, eso es todo lo que necesita hacer, pero supongamos que tiene este tipo (mytype) , usted no sabe nada al respecto, y necesita crear una instancia de este.
Intenté simplemente llamar a mytype() y devuelve un error que indica que type() toma 1 o 3 argumentos. Imagino que estos argumentos pueden estar relacionados con cualquier argumento que quiera pasar al método init del objeto que se está creando.
Nota: He visto una serie de preguntas sobre cómo crear un objeto dado una cadena que representa su nombre completo. Tenga en cuenta que aquí, ya tengo un tipo, ¿es un poco diferente? ¿Creo?
EDITAR ... Yo tenía la esperanza de que podía hacer el equivalente del siguiente código .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);
}
}
había asumido que en Python, el tipo (claseA) dio algo a cambio que podría utilizar más tarde para crear una instancia de ClassA. Parece que he entendido mal el tipo en Python.
mytype = tipo (claseA) le dará un objeto de clase. Sospecho que esto no es lo que querías decir. –
Es lo que quise decir, creo :) Consulte mi edición anterior con el ejemplo .Net si eso ayuda a aclarar algo. –