HOWTO · Python
Python Multi-Line if Condição
Condição if multilinha em Python
Nesta página
Para dividir uma condição if longa em várias linhas em Python, envolva a expressão entre parênteses. O Python então permite a continuação implícita de linha, portanto você não precisa de uma barra invertida no final de cada linha. A indentação de continuação é escolhida pela legibilidade; o Python não adiciona automaticamente quatro espaços para você. Mantenha o corpo da instrução indentado sob o if como de costume.
Usar parênteses para dividir uma condição if longa
Os parênteses são a escolha padrão mais clara para uma condição que não cabe confortavelmente em uma linha. Eles permitem quebrar a expressão em pontos significativos e manter o parêntese de fechamento ao lado dos dois-pontos. Escolha uma indentação de continuação que torne a expressão fácil de percorrer e use o mesmo padrão de forma consistente em um arquivo.
Colocar os operadores booleanos antes das linhas de continuação
O PEP 8 recomenda quebrar antes de um operador binário, o que deixa and ou or no início da próxima linha de continuação. Isso torna cada verificação adicional fácil de detectar. A colocação é uma escolha de formatação: parênteses e quebras de linha não mudam como o Python agrupa expressões nem como and e or fazem curto-circuito. Consulte a orientação do PEP 8 sobre instruções if multilinha.
Aqui está um exemplo compacto com três verificações. O corpo pertence ao if; a indentação dentro dos parênteses ajuda os leitores a percorrer a expressão.
plan = {"active": True, "paid": True, "seats": 4}
if (
plan["active"]
and plan["paid"]
and plan["seats"] >= 3
):
print("Eligible for the team plan.")
else:
print("Choose another plan.")
Com os valores mostrados, as três verificações são verdadeiras, então o programa imprime:
Eligible for the team plan.
Para lógica mista, use parênteses para tornar o agrupamento pretendido visível, como (is_member or has_invitation) and account_is_active. Se uma verificação anterior deve proteger uma posterior, preserve essa ordem: and e or avaliam da esquerda para a direita com comportamento de curto-circuito. A formatação sozinha não torna um agrupamento diferente equivalente.
Usar barras invertidas somente quando necessário
Uma barra invertida pode continuar explicitamente uma instrução, mas é mais frágil do que os parênteses. O marcador deve ser o caractere final em sua linha física; espaços finais ou edições posteriores depois dele podem quebrar a continuação. Por exemplo, uma linha pode terminar com if account_is_active and \ antes da próxima condição. Prefira parênteses para uma condição longa porque eles evitam essa dependência do final da linha e permitem uma indentação natural. Reserve as barras invertidas para casos em que a sintaxe ao redor não fornece um contexto de continuação implícita.
Nomear uma condição quando isso melhorar a clareza
Quando uma condição tem um significado útil próprio ou é reutilizada, atribua-a a um nome descritivo como eligible_for_team_plan e, em seguida, escreva if eligible_for_team_plan:. Isso dá à instrução if um teste conciso e significativo e pode tornar o fluxo de controle ao redor mais fácil de ler. Mantenha o nome consistente onde quer que ele seja atribuído e usado.
Uma variável nomeada é uma escolha de estilo, não uma regra contra a refatoração. Para uma expressão curta usada uma vez, manter a condição entre parênteses ao lado do if pode ser mais claro; para uma regra mais longa ou reutilizada, um nome pode comunicar melhor a intenção. Siga as convenções do projeto e escolha a forma que torne a decisão mais fácil de ser entendida por outro desenvolvedor.