O uso de '{}' dentro de cadeias de caracteres de formato é considerado Pythonic?


9

Acabei de aprender que você pode escrever

'{}{}'.format(string_a, string_b)

ao invés de

'{0}{1}'.format(string_a, string_b)

em Python, ou seja, você pode omitir os numerais dos parâmetros de formato de string quando quiser que as coisas se encaixem uma a uma em ordem.

Isso é considerado pitônico?

NOTA: "Pythonic" é um termo comumente usado entre programadores de Python para significar código Python idiomático. Na cultura Python, tende a haver um consenso claro sobre questões de estilo, especialmente para questões muito específicas como esta, dada a filosofia explícita de design da linguagem de "Deve haver uma - e preferencialmente apenas uma - maneira óbvia de fazer isso". Isso é citado em "O Zen do Python", um conjunto de aforismos que ajudam bastante a definir o que é "Pythonic" e que é incluído em todas as distribuições do Python (em qualquer linha de comando do interpretador do Python, entre import thispara vê-lo).


4
@GregHewgill: "Pythonic" é um termo bastante usado que significa basicamente "Python idiomático"; o tipo de código Python que os aficionados por código Python de qualidade acham estilisticamente agradável.
Carson63000

11
Esse recurso muito específico está claramente incluído no Python (não é realmente uma questão de estilo); então, por que não seria considerado "Pythonic” por uma definição razoável? Até onde eu sei, não há recursos da linguagem que sejam considerados "não-pitônicos".
Greg Hewgill

4
Para referência, o {}recurso foi introduzido no Python 3.1 . O aprimoramento que levou a essa adição foi o problema 5237 . Guido tem vários comentários sobre esse assunto, incluindo "Por favor, vá em frente e termine isso. Estou feliz que isso esteja acontecendo!" Se isso não é considerado "pitonico", não sei o que é.
22813 Greg Hewgill

4
Para as pessoas que estão votando para encerrar esta questão, devo apenas salientar que o que é ou não Pythonic é uma parte importante da cultura de codificação Python, e eu argumentaria que a cultura de codificação é um elemento importante da engenharia de software, um assunto aceito por esse site.
Ghopper21

2
@ Andrea - isso é exatamente o que meu primeiro pensamento foi, mas é difícil argumentar que o BDFL acha que não é pitonico. Depois de ver a citação dele sobre isso, voltei a olhar o Zen de Python novamente e pensei que talvez este seja um caso de "praticidade supera pureza"? A justificativa da discussão (vinculada na resposta de Greg) é sobre conveniência para o redator de código. E, de qualquer forma, a maneira mais explícita de usar a formatação de strings é "{a}{b}".format(a=string_a, b=string_b)em vez da numeração. De qualquer forma, isso é apenas a minha especulação e ler entre as linhas do pensamento ...
Ghopper21

Respostas:


12

O {}recurso foi introduzido no Python 3.1 (e também suportado no Python 2.7). O aprimoramento que levou a essa adição foi o problema 5237 . Guido tem vários comentários sobre esse assunto, incluindo:

Por favor, vá em frente e termine isso. Estou feliz que isso está entrando!

Um recurso com esse tipo de endosso do BDFL certamente seria considerado "Pythonic" por qualquer medida.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.