ExpertiDict

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

dataclass

/ˈdeɪɾəˌklæs/substantivo

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).

Veja também

Todos os termos de Python