Clases Dinámicas con Python

Esto es un tutorial sumamente simple. Pero nunca está de más.

Acá tenemos un ejemplo de como instanciar un objeto guardando el nombre de la clase en una variable:

>>class A():
     def __init__(self):
        print "New Object of Class A"
>>>class B():
     def __init__(self):
        print "New Object of Class B"
>>> aClass = B
>>> newObject = aClass()
"New Object of Class B"
>>> aClass = A
>>> newObject = aClass()
"New Object of Class A"

También podemos hacer exactamente lo mismo pero usando el nombre de las clases con un string. Suponiendo que ya tenemos definidas las dos clases del ejemplo anterior (Clase A y Clase B):

>>> nombreA = "A"
>>> nombreB = "B"
>>> newObject = eval(nombreB)()
"New Object of Class B"
>>> newObject = eval(nombreA)()
"New Object of Class A"

Como vemos, la magia se encuentra en la funcion eval de Python,

 

Espero que les sirva!

, ,

  1. Deja un comentario

Deja un comentario