Pular para o conteúdo

Como usar a classe de dados congelada no Python

[

Dataclasses

Neste tutorial de Python, vamos explorar as dataclasses - uma funcionalidade introduzida a partir da versão 3.7 da linguagem Python. As dataclasses são uma maneira conveniente de definir classes que são principalmente usadas para armazenar dados.

O que são Dataclasses?

Uma dataclass é uma classe que fornece automaticamente a implementação de métodos como __init__(), __repr__(), __eq__(), entre outros, com base nos campos definidos na classe. Isso permite criar classes de dados de forma mais concisa e eficiente.

Vantagens das Dataclasses

As dataclasses oferecem várias vantagens, incluindo:

  • Código mais limpo e legível: você pode definir os campos da classe explicitamente, o que torna o código mais fácil de entender.
  • Métodos implementados automaticamente: os métodos comuns, como __init__(), __repr__(), __eq__(), entre outros, são implementados automaticamente com base nos campos definidos na classe.
  • Comparação por valor: as dataclasses implementam automaticamente o método __eq__() para realizar uma comparação por valor em vez de uma comparação por referência.

Criando uma Dataclass

Para criar uma dataclass, primeiro precisamos importar o módulo dataclasses do Python. Em seguida, decoramos a classe com @dataclass e definimos os campos da classe com suas anotações de tipo correspondentes. Veja um exemplo abaixo:

from dataclasses import dataclass
@dataclass
class Pessoa:
nome: str
idade: int
altura: float

Neste exemplo, definimos a classe Pessoa como uma dataclass com os campos nome, idade e altura. Note que não precisamos implementar explicitamente um método __init__() ou __repr__(). A dataclass automaticamente cria esses métodos para nós.

Usando uma Dataclass

Depois de criar uma dataclass, podemos criar objetos dessa classe da mesma maneira que criaríamos objetos de qualquer outra classe. Veja um exemplo abaixo:

p1 = Pessoa("João", 30, 1.75)
p2 = Pessoa("Maria", 25, 1.65)
print(p1)
print(p2.nome)

Neste exemplo, criamos dois objetos Pessoa - p1 e p2. Podemos acessar os campos desses objetos normalmente, assim como faríamos com qualquer outra classe.

Modificando uma Dataclass

Uma vez que uma dataclass é definida, podemos modificar os valores de seus campos da mesma maneira que modificaríamos qualquer outro atributo de uma classe. Veja um exemplo abaixo:

p1.nome = "José"
p1.idade = 35
print(p1)

Neste exemplo, alteramos o valor dos campos nome e idade do objeto p1. Ao imprimir o objeto, podemos ver que os valores foram atualizados corretamente.

Conclusão

As dataclasses são uma adição poderosa ao Python, permitindo que você defina classes de dados de forma mais concisa e eficiente. Elas automatizam a implementação de métodos comuns e facilitam a leitura e a manipulação dos dados. Se você estiver trabalhando com grandes conjuntos de dados ou precisando armazenar informações estruturadas, as dataclasses são definitivamente um recurso que vale a pena explorar.

Experimente criar suas próprias dataclasses e veja como elas podem simplificar seu código e torná-lo mais legível. Dê uma chance às dataclasses e aproveite ao máximo a simplicidade e a eficiência que elas trazem para o seu projeto Python!