Comentários sobre: Pequena dica de Python: string formatting com locals() https://elcio.com.br/pequena-dica-de-python-string-formatting-com-locals/ HTML5, CSS, Tableless, Desenvolvimento Web, Python, Linux Fri, 12 Oct 2012 21:33:00 +0000 hourly 1 Por: Vinicius Assef https://elcio.com.br/pequena-dica-de-python-string-formatting-com-locals/#comment-10474 Fri, 12 Oct 2012 21:33:00 +0000 http://elcio.com.br/?p=3742#comment-10474 Aliás, precisa do meu_locals sim. hehehe

]]>
Por: Vinicius Assef https://elcio.com.br/pequena-dica-de-python-string-formatting-com-locals/#comment-10472 Fri, 12 Oct 2012 20:13:00 +0000 http://elcio.com.br/?p=3742#comment-10472  No meu comentário anterior, a atribuição ao meu_locals não precisa. Eu estava com outro código em mente antes, e acabei esquecendo o gaiato ali. #fail rsrsrs

]]>
Por: Vinicius Assef https://elcio.com.br/pequena-dica-de-python-string-formatting-com-locals/#comment-10471 Fri, 12 Oct 2012 20:11:00 +0000 http://elcio.com.br/?p=3742#comment-10471 Formatar strings com locals() (ou qualquer outro dicionário com muitas chaves) é bem útil e economiza código. 😉

Eu só não recomendaria a parte do return locals() p/ um template se a função usar muitas variáveis. Isso só é bom na hora de escrever o código. Depois, quem vai dar manutenção sofre pra descobrir se determinada variável é usada no template. Principalmente se houver inclusão de outro template, por exemplo.

Para economizar código, a partir do Python 2.7, é possível usar dict_comprehension para deixar o antigo return locals() mais explícito, assim:
>>> meu_locals = locals()
>>> return {key: meu_locals.get(key) for key in ‘campo1 campo2 campo3’.split()}

Antes da v2.7 também era possível retornando tuplas e criando o dicionário com dict(), assim:
>>> return dict([(key, meu_locals.get(key)) for key in ‘campo1 campo2 campo3’.split()])

Mas, claro, se sua função usar poucas variáveis, até que o return locals() ajuda, né? 😉

]]>