Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> python

Clase de datos de Python:una mejor manera de almacenar datos

Una clase de datos de Python es una clase normal de Python que tiene el @dataclass decorador. Está específicamente creado para almacenar datos. Desde la versión 3.7 de Python, Python ofrece clases de datos a través de un módulo integrado llamado dataclass . Hay varias ventajas sobre las clases regulares de Python que exploraremos en este artículo. También veremos código de ejemplo y un par de operaciones comunes que quizás desee realizar con clases de datos.

Tabla de contenidos

  • La ventaja de usar clases de datos
  • Ejemplo de clase de datos de Python
  • Valores predeterminados
  • Convertir una clase de datos a JSON
  • Sigue aprendiendo

La ventaja de usar clases de datos

¿Por qué debería usar una clase de datos en lugar de una clase normal de Python? Primero, veamos algunas de las ventajas que ofrece una clase de datos de Python.

Requiere una cantidad mínima de código

El @dataclass decorador agrega mucha funcionalidad a una clase sin agregar ningún código visible. Esto permite que su clase de datos sea muy compacta sin dejar de ofrecer muchas características útiles. Todo lo que necesita hacer es definir los campos para contener sus datos. No necesita definir ninguna función.

Comparación

Se pueden comparar dos clases de datos de Python con == porque el llamado método dunder __eq__ se implementa automáticamente. En general, podemos comparar cualquier objeto de Python que implemente este método especial con otros objetos del mismo tipo.

Imprimir una clase de datos

Del mismo modo, porque __repr__ está implementado, puede imprimir clases de datos y obtener una buena representación de ellos. Esto es especialmente útil para la depuración.

Las clases de datos requieren sugerencias de tipo

Las clases de datos se construyen alrededor del nuevo (ish) tipo de sistema que ofrece Python. El uso de sugerencias de tipo reduce las posibilidades de errores y comportamientos inesperados en su código. Básicamente, declara el tipo de datos que deben almacenarse en una variable.

Ejemplo de clase de datos de Python

Aquí hay un ejemplo de una clase de datos en el trabajo:

from dataclasses import dataclass

@dataclass
class Card:
    rank: str
    suit: str
    
card1 = Card("Q", "hearts")
card2 = Card("Q", "hearts")

print(card1 == card2)
# True

print(card1.rank)
# 'Q'

print(card1)
Card(rank='Q', suit='hearts')

Valores predeterminados

Una clase de datos puede tener valores predeterminados. Asignar valores predeterminados es tan simple como asignar un valor a una variable. Por ejemplo, para que nuestra clase Carta tenga un valor predeterminado de Reina de corazones, podemos hacer lo siguiente:

from dataclasses import dataclass

@dataclass
class Card:
    rank: str = 'Q'
    suit: str = 'hearts'

Convertir una clase de datos a JSON

Un caso de uso común es convertir su clase de datos bien estructurados a JSON. Por ejemplo, si desea exportar los datos a una base de datos o enviarlos al navegador. Las malas noticias aquí:no hay una forma integrada de convertir una clase de datos a JSON.

La buena noticia es que existe un paquete de Python llamado dataclasses-json que simplifica la tarea. Sin embargo, requiere un decorador adicional. Deberá instalar el paquete con el comando pip install o algo como Pipenv, preferiblemente dentro de un entorno virtual. Por ejemplo:

$ pip install dataclasses-json

Aquí hay un ejemplo de cómo puede usar el paquete:

from dataclasses import dataclass
from dataclasses_json import dataclass_json

@dataclass_json
@dataclass
class Card:
    rank: str = 'Q'
    suit: str = 'hearts'

card = Card()
print(card.to_json())
{"rank": "Q", "suit": "hearts"}

Otro método es usar la herencia de Python y heredar de la clase JSONEncoder para crear su propio codificador personalizado. La ventaja aquí es que no necesita instalar un paquete externo. Puede aprender cómo hacerlo en esta publicación de blog.

Seguir aprendiendo

  • El paquete Python attrs tiene una versión avanzada de la clase de datos nativa de Python
  • La documentación oficial en Python.org
  • Cómo devolver múltiples valores en Python

python

  1. Tipos de datos de Python
  2. Conversión de tipos de Python y conversión de tipos
  3. Operadores de Python
  4. Excepciones personalizadas de Python
  5. Programación orientada a objetos de Python
  6. Herencia de Python
  7. Cómo la consolidación del centro de datos está cambiando la forma en que almacenamos los datos
  8. type() y isinstance() en Python con ejemplos
  9. Java - Estructuras de datos
  10. Abstracción de datos en C++
  11. Encapsulación de datos en C++