ejemplo de plantillas

Chema Cortes pych3m4 en gmail.com
Mar Mayo 27 20:21:37 CEST 2008


El día 27 de mayo de 2008 19:38, Arnau Sanchez <pyarnau en gmail.com> escribió:
> Pablo Rodríguez escribió:

>> 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 :-)

Pues yo lo primero que pensé es en que se podía usar el "print >>", algo así:

from cStringIO import StringIO

res=StringIO()

print >>res, "linea de codigo"
print >>res, "\tuna linea de codigo que usa un argumento: %s" % arg2

file("salida.txt","w).write(res.getvalue())


De todos modos, estoy de acuerdo en que se debería evitar usar una
lista como almacenamiento intermedio de las líneas de texto.
_______________________________________________
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