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