Dataclasses Python
Dataclasses são classes python, mas são adequadas para armazenar objetos de dados. Este módulo fornece um decorador e funções para adicionar automaticamente métodos especiais gerados, como __init__() e __repr__(), a classes definidas pelo usuário.
Funcionalidades
Elas armazenam dados e representam um certo tipo de dado. Ex: Um número. Para pessoas familiarizadas com ORMs, uma instância de modelo é um objeto de dados. Ele representa um tipo específico de entidade. Ele contém atributos que definem ou representam a entidade.
Elas podem ser comparadas com outros objetos do mesmo tipo. Ex: Um número pode ser maior que, menor que ou igual a outro número.
Python 3.7 fornece um decorador dataclass que é usado para converter uma classe em uma dataclass.
class Number:
def __init__(self, val):
self.val = val
obj = Number(2)
obj.val
2
com dataclass
# Dataclass: gera automaticamente os métodos __init__ e __repr__
from dataclasses import dataclass
@dataclass # O decorador converte a classe em dataclass
class Number:
val: int # Anotação de tipo obrigatória
obj = Number(2) # __init__ criado automaticamente
obj.val
2
Valores Padrão
É fácil adicionar valores padrão aos campos da sua data class.
# Dataclass com valores padrão: campos com padrões devem vir depois dos campos obrigatórios
@dataclass
class Product:
name: str # Campo obrigatório
count: int = 0 # Campo opcional com valor padrão
price: float = 0.0 # Campo opcional com valor padrão
obj = Product("Python") # Apenas 'name' é obrigatório, os outros usam padrões
obj.name
Python
obj.count
0
obj.price
0.0
Faça login para responder este quiz e acompanhar seu progresso de aprendizagem
Dicas de Tipo (Type hints)
É obrigatório definir o tipo de dado na dataclass. No entanto, se você preferir não especificar o tipo de dado, use typing.Any.
from dataclasses import dataclass
from typing import Any
@dataclass
class WithoutExplicitTypes:
name: Any
value: Any = 42