"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Otimizando seu código com o operador Walrus do Python: exemplos do mundo real e antipadrões a serem evitados

Otimizando seu código com o operador Walrus do Python: exemplos do mundo real e antipadrões a serem evitados

Publicado em 2024-08-27
Navegar:417

Optimizing Your Code with Python

Introdução:
O operador walrus, introduzido no Python 3.8, é uma ferramenta útil para os desenvolvedores simplificarem e otimizarem seu código. Permite a atribuição de variáveis ​​dentro de expressões, tornando-se uma abordagem de programação mais concisa e eficiente. Contudo, como qualquer ferramenta, deve ser utilizada com moderação e bom senso. Neste tutorial, exploraremos exemplos reais de uso do operador morsa e destacaremos alguns antipadrões a serem evitados.

Exemplos do mundo real de uso do operador Walrus:
1. Simplificando declarações condicionais
Um dos casos de uso mais comuns do operador morsa é simplificar instruções condicionais. Digamos que temos uma função que retorna o comprimento de uma string e queremos verificar se o comprimento é maior que 10. Usando o operador morsa, podemos atribuir a variável comprimento diretamente na instrução condicional, economizando uma linha de código.

Exemplo de declaração condicional sem operador morsa

comprimento = len(string)
se comprimento > 10:
print("String tem mais de 10 caracteres.")

Exemplo usando o operador morsa

if (comprimento := len(string)) > 10:
print("String tem mais de 10 caracteres.")

2. Evitando chamadas de função repetidas
Em alguns casos, o uso do operador walrus pode melhorar o desempenho do nosso código, evitando chamadas de função repetidas. No exemplo a seguir, queremos calcular a nota média de um aluno, mas também precisamos verificar se o aluno foi aprovado na matéria. Sem o operador morsa, precisaríamos chamar a função duas vezes, mas com ele podemos atribuir o resultado da função a uma variável e usá-la tanto na instrução condicional quanto no cálculo.

Exemplo sem operador morsa

nota1 = nota_computação(aluno, teste1)
nota2 = nota_computação(aluno, teste2)
if (nota1 nota2) / 2 >= 70:
print("O aluno foi aprovado na aula.")

if ((nota1 := nota_computação(aluno, teste1)) (nota2 := nota_computação(aluno, teste2))) / 2 >= 70:
print("O aluno foi aprovado na aula.")

3. Simplificando a compreensão da lista
As compreensões de lista são uma ferramenta poderosa para manipular e filtrar dados em uma lista. No entanto, compreensões de listas complexas podem se tornar difíceis de ler e manter. O uso do operador morsa pode simplificar essas compreensões, permitindo-nos atribuir variáveis ​​dentro da expressão.

Exemplo de compreensão de lista sem operador morsa

resultados = [compute_profit(sales, cost) para vendas, custo em sales_data se compute_profit(sales, cost) > 50]

Exemplo usando o operador morsa

resultados = [(lucro:=compute_profit(sales, cost)) para vendas, custo em sales_data se lucro > 50]

Antipadrões: como não usar o operador Walrus:
1. Compreensão de lista complexa
Embora o operador morsa possa simplificar a compreensão da lista, seu uso excessivo pode levar a códigos complexos e ilegíveis. Neste antipadrão, vemos uma compreensão de lista com múltiplas condições e atribuições aninhadas. Isso pode se tornar difícil de ler e manter, e é melhor dividir a lógica em etapas separadas.

Exemplo de compreensão de lista confusa com operador de morsa aninhado

dados_vendas = [(100, 70), (200, 150), (150, 100), (300, 200)]
resultados = [(vendas, custo, lucro, proporção de vendas) para vendas, custo em dados_de vendas if (lucro := computar_lucro(vendas, custo)) > 50
if (proporção_vendas := vendas/custo) > 1,5 if (margem_lucro := (lucro/vendas)) > 0,2]

2. Operadores de morsa aninhados
O uso de operadores morsas aninhados pode resultar em código difícil de ler e entender. Neste exemplo, vemos operadores aninhados em uma única expressão, tornando difícil descompactar a lógica e entender o código. É melhor dividir a lógica em várias linhas para melhor legibilidade e manutenção.

Exemplo de operadores de morsa aninhados

valores = [5, 15, 25, 35, 45]
limite = 20
resultados = []
para valor em valores:
if (above_threshold := valor > limite) e (incrementado := (novo_valor := valor 10) > 30):
resultados.append(novo_valor)
imprimir (resultados)

Conclusão:
O operador walrus é uma ferramenta poderosa para simplificar e otimizar código, mas deve ser usado com cautela. Ao compreender suas capacidades e limitações, podemos usá-lo de forma eficaz em nosso código e evitar antipadrões comuns.

Os testes práticos de certificação Python do MyExamCloud são uma ferramenta útil para aqueles que se preparam para qualquer certificação Python.

Declaração de lançamento Este artigo foi reproduzido em: https://dev.to/myexamcloud/optimizing-your-code-with-pythons-walrus-operator-real-world-examples-and-anti-patterns-to-avoid-10ii?1 Qualquer violação, entre em contato com [email protected] para excluir
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3