Crear clases dinamicamente

Alberto Valverde alberto en toscat.net
Mie Ene 3 21:31:40 CET 2007


On Jan 2, 2007, at 3:40 PM, Luis Miguel Morillas wrote:

> El 2/01/07, Oswaldo Hernández<listas en soft-com.es> escribió:
>> Hola a todos,
>>
>> Me suena que este tema ya se ha tratado, pero no lo localizo.
>>
>> Estoy intentando crear clases en tiempo de ejecución, algo como:
>>         eval("class xxxx(yyy): pass")
>>
>
> exec "class %s(%s): pass" % (nombre, base)

Para ésto te recomendaría la función "type" que hace lo mismo y es  
más eficiente que "exec":

mi_clase = type(nombre, (base1, base2, ..), dct)

dónde dct en tu ejemplo sería un diccionario vacío (es un diccionario  
con los atributos de la clase).

En vez de "type" podrías usar una metaclase pero eso ya es otro tema...

Un saludo,
Alberto 



Más información sobre la lista de distribución Python-es