Python · Intermediário · Inglês · Técnico
dataclass
Decorator do módulo dataclasses que gera automaticamente __init__, __repr__ e __eq__ a partir dos campos anotados. Reduz o código repetitivo de classes que só guardam dados.
Onde usar
Usada em modelos simples, como DTOs e configurações. Com frozen=True o objeto fica imutável e hashable, e com slots=True gasta menos memória.
Em código
from dataclasses import dataclass
@dataclass
class Ponto:
x: int
y: int = 0
print(Ponto(3))Exemplos
Make it a dataclass instead of writing init by hand.
Faça uma dataclass em vez de escrever o init à mão.
Use a frozen dataclass so it can be a dict key.
Use uma dataclass frozen para poder ser chave de dicionário.
Cuidado
Campo com valor padrão mutável, como uma lista, é recusado com erro; use field(default_factory=list).