Crear clases dinamicamente
javier lasheras
javier.lasheras en telefonica.net
Mar Ene 2 19:12:13 CET 2007
Muchos sistemas de plantillas generan un codigo python que compilan para
hacer el trabajo. Ejemplo tonto:
----
Esto es una plantilla
#if extendido
Y sirve para que ${persona} conozca un ejemplo
#end
Ya.
----
Se compilaria a:
----
class __plantilla(Template):
def __init__(self, context):
self.context = context;
def process(self, data):
yield "Esto es una plantilla"
if self.__getValue(data, "extendido"):
yield "Y sirve para que "
yield self.__getValue(data, "persona")
yield "conozca un ejemplo"
yield "Ya"
----
Si hicieras una interpretacion de la plantilla, deberias tener un arbol
binario con los elementos procesados. Ejemplo: Data para el texto, Var
para las variables, IF para los condicionales; donde IF puede contener a
su vez a otras tipos Data, Var e IF. Generar codigo es igual de complejo
que la interpretación y mucho más rapido en ejecución.
Con esto se suele obtener velocidad frente a la alternativa de
"interpretar" las plantillas cada vez que se ejecutan.
Hay otros ejemplos de casos utiles. Pero basicamente piensa en lo
siguiente: "Para que hacer un interprete, si ya tengo a python".
CVA escribió:
> Hola a todos. Al ver el "Subject" del mail, me surgio la duda: Cual es la utilidad o en que casos seria necesario o beneficioso crear una nueva clase en tiempo de ejecución?
>
> Saludos y gracias!
>
> Seba.
>
>
>
>
>
> *********** "..Sólo sé que no se nada.." **************
> __________________________________________________
> Correo Yahoo!
> Espacio para todos tus mensajes, antivirus y antispam ¡gratis!
> ¡Abrí tu cuenta ya! - http://correo.yahoo.com.ar
> _______________________________________________
> Python-es mailing list
> Python-es en aditel.org
> http://listas.aditel.org/listinfo/python-es
>
Más información sobre la lista de distribución Python-es