ejemplo de plantillas

Arnau Sanchez pyarnau en gmail.com
Mar Mayo 27 19:38:42 CEST 2008


Pablo Rodríguez escribió:

> Lo que no consigo entender muy bien es la ventaja real de usar
> plantillas. Perdona que lo ponga en duda, pero supongo que no consigo
> verlo por propia ignorancia. Además tengo ciertas reticencias a cambiar
> algo sin ver las mejoras. 

Por supuesto, si no lo ves claro no tires por ese camino. Pero con plantillas o
sin ellas, lo que sí te recomendaría es que lo separaras de alguna forma, no
puede ser que tu programa principal crezca sin medida. Si optas por Python puro
(lo que te permitiría reusar el código) puedes meterlo en un módulo separado e
importarlo desde el principal.

> Entiendo que lo único que conseguiré con las plantillas es quitar los
> framebuffer.append(''), que hacen un poco más engorrosa la lectura del
> texto. Desde luego, si sólo es eso, creo que no me compensa (supongo que
> lo de la lógica de la presentación no es tan visual, pero sigue siendo
> la misma, con un sufijo y con un prefijo).

Para evitar tanta repetición, llámale al append de otra forma:

def code_generator(arg1, arg2):
     o = framebuffer.append
     ...
     o("linea de codigo")
     o("\tuna linea de codigo que usa un argumento: %s" % arg2)
     return framebuffer

Ahora que escribo esto...recuerdo que pensé de inmediato en plantillas al ver 
que la salida contenía tabulaciones (imagínate el trabajo cuando tengas que 
hacer un reindentado gordo). Pero en fin, que ya hemos desestimado plantillas, 
lo dejo :-)

> Esto introduce una dependencia nueva. Por ejemplo, ninguno de los dos
> está incluido en mi distrubución, Mandriva, y quizá no esté en ninguna
> de las otras grandes: Ubuntu, Fedora, (pon aquí la que tenga que ser).

Es cierto que añadir dependencias a librerías "extrañas" es un problema, pero en
este caso sería fácilmente sorteable: tempita es una librería tan pequeña (25Kb,
un único fichero), que lo incluirías directamente en tu aplicación.

Lo dicho, opta por el camino en el que te sientas más seguro.

arnau
_______________________________________________
Lista de correo Python-es 
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes





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