Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial programming >> Python

Classes de données Python : simplifier la gestion de données avec syntaxe moderne

Classes de données Python : simplifier la gestion de données avec syntaxe moderne

Une classe de données Python est une classe régulière avec décorateur @dataclass. Créée spécifiquement pour stocker des données. Depuis Python 3.7, module built-in dataclasses. Plusieurs avantages sur classes régulières qu'on explore ici. Exemples code et opérations courantes.

Avantages des classes de données

Pourquoi dataclass au lieu classe régulière ? Avantages :

Code minimal requis

Le décorateur @dataclass ajoute beaucoup fonctionnalités sans code visible. Dataclass compacte mais riche. Il suffit de déclarer champs pour données. Pas besoin de définir fonctions.

Comparaison

Deux dataclasses comparables avec == car méthode dunder __eq__ implémentée auto. En général, tout objet Python implémentant cette méthode spéciale comparable à autres objets même type.

Affichage dataclass

Comme __repr__ implémenté, print donne belle représentation. Utile pour débogage.

Dataclasses exigent type hints

Dataclasses construites autour système types Python. Type hints réduisent bugs/comportements inattendus. Vous déclarez type données stockées dans variable.

Exemple classe de données Python

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

Valeurs par défaut

Dataclass peut avoir valeurs par défaut. Assignation simple comme variable. Pour faire Card = Dame de cœur par défaut :

from dataclasses import dataclass

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

Convertir une dataclass en JSON

Cas courant : exporter dataclass structurée vers JSON. Ex: envoi BDD ou navigateur. Mauvaise nouvelle : pas de conversion built-in dataclass → JSON.

Bonne nouvelle : package dataclasses-json simplifie. Nécessite décorateur extra. Installation via pip/Pipenv, idéalement dans venv :

$ pip install dataclasses-json

Exemple utilisation :

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"}

Autre méthode : héritage Python + hériter JSONEncoder pour encoder custom. Avantage : pas package externe. Apprenez comment dans cet article.

Continuer à apprendre

Python

  1. Maîtriser les types de données Python : Guide pratique
  2. Maîtriser la conversion et le transtypage de types en Python : Guide complet
  3. Maîtriser les opérateurs Python : Guide complet
  4. Maîtriser les exceptions personnalisées Python : guide pratique
  5. Maîtriser la programmation orientée objet Python : classes, héritage, encapsulation et polymorphisme
  6. Maîtriser l'héritage Python : concepts, syntaxe et exemples pratiques
  7. Consolidation des data centers : réduire les coûts, renforcer la sécurité, booster l'efficacité
  8. Comprendre type() et isinstance() en Python : exemples pratiques
  9. Structures de données Java : Exploration des classes de base et Collections Framework