Operador Walrus (`:=`): Atribuição em Expressões

Publicado:
Atualizado:
PorJeferson Peter
1 min de leitura
Python
Compartilhe este post:

Introduzido no Python 3.8, o operador walrus (:=) gerou bastante discussão quando apareceu pela primeira vez.

À primeira vista, ele pode parecer apenas açúcar sintático. Mas, depois de usá-lo em código real — especialmente em loops e validações — fica claro que o walrus operator não é sobre “código esperto”, e sim sobre reduzir duplicações quando faz sentido.

Neste post, mostro quando o operador walrus realmente ajuda e quando é melhor evitá-lo.


Quando o operador walrus realmente ajuda

O operador walrus permite atribuir um valor e usá-lo na mesma expressão.

Ele costuma ser útil quando:

  • Você quer evitar repetir chamadas de função ou expressões
  • Quer manter lógicas relacionadas no mesmo lugar
  • Está escrevendo loops ou condicionais com valores intermediários

Quando bem usado, ele deixa o código mais curto sem perder clareza.


Exemplo sem o operador walrus

data = input("Digite algo: ")
while data != "quit":
    print(f"Você digitou: {data}")
    data = input("Digite algo: ")

Exemplo com o operador walrus

while (data := input("Digite algo: ")) != "quit":
    print(f"Você digitou: {data}")

Outro exemplo prático

numbers = [1, 2, 3, 4, 5]

if (length := len(numbers)) > 3:
    print(f"A lista tem {length} elementos")

Um erro comum a evitar

# Difícil de ler — evite
if (n := len(data)) > 10 and (avg := sum(data) / n) > 5:
    process(data)

Conclusão

Na minha experiência, o operador walrus funciona melhor quando remove duplicações e mantém a lógica relacionada no mesmo lugar.

Se o uso dele torna a linha mais difícil de ler, normalmente é um sinal de que ele não deveria estar ali.

Compartilhe este post:
Operador Walrus (`:=`): Atribuição em Expressões | CodeCraftPython