ExpertiDict

Python · Intermediário · Inglês · Técnico

pattern matching

/ˈpætɚn ˈmætʃɪŋ/substantivo

Instrução match/case do Python 3.10 que compara um valor com padrões estruturais, como tipos, listas e dicionários, e já extrai partes dele em variáveis.

Onde usar

Útil para tratar comandos, mensagens e dados aninhados sem uma cascata de if e isinstance. Aparece ao processar JSON, árvores de sintaxe e eventos de tipos diferentes.

Em código

def tratar(cmd):
  match cmd:
    case ['ir', destino]:
      return f'indo a {destino}'
    case ['sair']:
      return 'tchau'
    case _:
      return '?'

Exemplos

Switch to pattern matching instead of that if-elif chain.

Troque aquela cadeia de if-elif por pattern matching.

The pattern matching unpacks the tuple right in the case.

O pattern matching desempacota a tupla direto no case.

Cuidado

Um nome simples no case, como case cor:, captura qualquer valor em vez de compará-lo; para comparar com uma constante use um nome com ponto ou um literal.

Sinônimos

match case, correspondência de padrões

Veja também

Todos os termos de Python