[pyar] Cuestión de elegancia (?)

Martin Chikilian slacklinucs en gmail.com
Sab Mayo 26 21:15:22 ART 2012


Hola,

2012/5/26 Martin Alderete <malderete en gmail.com>

> Hola!
> Como va?
>
> 2012/5/26 Claudio <claudiobidau en gmail.com>
>
>> Hola!
>> Tengo un código que funciona pero es horrible (sobre todo la linea del
>> 'for') y me gustaría saber si existe alguna forma mas elegante de
>> escribirlo.
>>
>> En la vista tengo lo siguiente (es el post de un form):
>>
>>     post = Post()
>>
>>     for tag_name in set(map(lambda tag:tag.strip(),
>> form.tags.data.split(','))):
>>
>
> No es necesario usar map si podes usar un list comprehension, esto puede
> solucionarse asi:
>
> for tag_name in set([tag.strip() for tag in form.tags.data.split(",")]):
>
>
>
> No es necesario que mires la longitud, ya que vas a iterar sobre los
> elementos del conjunto y el strip te elimina los "blancos"
>
>>       if len(tag_name) > 0:
>>
>
De hecho, si hay que controlar que el string no vino vacío, el return de un
split() sobre un string vacío es un string vacío ;-)

Lo que si, cambiaría la línea a:

if tag_name:


>
>  Luego viene tu logica la cual supongo bien :)
>
>
>         t = Tag.query.filter_by(name=tag_name).first() or Tag(tag_name)
>>         post.tags.append(t)
>>
>>     db.session.add(post)
>>     db.session.commit()
>>
>>
Claudio, sobre hacer la lógica cuando guardás los tags que viste por ahí lo
veo como la mejor solución, evitás tenés que chequear consistencia luego
(eg, en la lógica que guarda los tags hacer el strip, no dejar meter tags
cuyo string sea nada, etc).

Saludos!
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20120526/dffaa0dc/attachment.html>


More information about the pyar mailing list