Python · Avançado · Inglês · Técnico
dunder match args
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 2Exemplos
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.