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