ExpertiDict

Python · Avançado · Inglês · Técnico

dunder match args

/ˈdʌndəɹ ˈmætʃ ˈɑɹɡz/substantivo

Atributo de classe __match_args__, uma tupla de nomes de atributos que define a ordem dos padrões posicionais no match. Dataclasses e namedtuples o geram sozinhos.

Onde usar

Permite escrever case Ponto(x, y) em classes próprias, em vez de só case Ponto(x=x, y=y). Em code review, aparece ao dar suporte a pattern matching em tipos de domínio.

Em código

class P:
  __match_args__ = ('x', 'y')
  def __init__(self, x, y):
    self.x, self.y = x, y
match P(1, 2):
  case P(a, b):
    print(a, b)  # 1 2

Exemplos

Define dunder match args so positional patterns work.

Defina o dunder match args para os padrões posicionais funcionarem.

Dataclasses generate dunder match args for you.

As dataclasses geram o dunder match args para você.

Cuidado

Sem __match_args__, um padrão posicional em classe comum lança TypeError; só a forma com argumentos nomeados funciona.

Veja também

Todos os termos de Python