Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> Python

Python Data Classes: Datenverwaltung mit moderner Syntax optimieren

Python Data Classes: Datenverwaltung mit moderner Syntax optimieren

Eine Python Data Class ist eine reguläre Python-Klasse mit dem @dataclass-Dekorator. Sie ist speziell zum Halten von Daten erschaffen. Seit Python 3.7 bietet Python Data  Classes über das eingebaute Modul dataclasses. Mehrere Vorteile gegenüber regulären Klassen, die wir hier erkunden. Auch Beispielcode und häufige Operationen.

Vorteile von Data Classes

Minimaler Codeaufwand

Der @dataclass-Dekorator fügt einer Klasse viel Funktionalität hinzu, ohne sichtbaren Code hinzuzufügen. Ihre Data Class bleibt kompakt, bietet aber viele nützliche Features. Sie definieren nur die Felder für Ihre Daten. Keine Funktionen definieren nötig.

Vergleich

Zwei Python Data Classes lassen sich mit == vergleichen, da die Dunder-Methode __eq__ automatisch implementiert wird. Generell können wir jedes Python-Objekt, das diese Spezialmethode implementiert, mit anderen Objekten desselben Typs vergleichen.

Data Class drucken

Da __repr__ implementiert ist, können Sie Data Classes drucken und erhalten eine schöne Repräsentation. Besonders nützlich zum Debuggen.

Data Classes erfordern Type Hints

Data Classes basieren auf Pythons (relativ) neuem Typsystem. Type Hints reduzieren Bugs und unerwartetes Verhalten. Sie deklarieren quasi den Datentyp, der in einer Variable gespeichert werden soll.

Python Data Class Beispiel

Hier ein Data Class in Aktion:

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

Standardwerte

Eine Data Class kann Standardwerte haben. Zuweisung ist so einfach wie Variablenzuweisung. Damit unsere Card-Klasse Standardwert „Damen Herz“ hat:

from dataclasses import dataclass

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

Data Class zu JSON konvertieren

Häufiger Use Case: Strukturierte Data Class zu JSON konvertieren. Z. B. für Datenbankexport oder Browser-Übertragung. Schlechte Nachricht: Kein eingebauter Weg.

Gute Nachricht: Paket dataclasses-json vereinfacht die Aufgabe. Benötigt extra Dekorator. Installation via pip install oder Pipenv, am besten in virtueller Umgebung:

$ pip install dataclasses-json

Beispiel zur Nutzung:

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

Alternative: Python Vererbung, von JSONEncoder erben, eigenen Encoder erstellen. Vorteil: Kein externes Paket nötig. Wie das geht, in diesem Blogpost.

Weiterlernen

Python

  1. Python-Datentypen meistern: Praxisleitfaden
  2. Python-Typkonvertierung & Casting meistern: Umfassender Leitfaden
  3. Python-Operatoren meistern: Umfassender Leitfaden
  4. Python benutzerdefinierte Exceptions: Ein praktischer Leitfaden
  5. Python Objektorientierte Programmierung meistern: Klassen, Vererbung, Kapselung & Polymorphie
  6. Python Vererbung meistern: Konzepte, Syntax und praktische Beispiele
  7. Data Center Konsolidierung: Kosten senken, Sicherheit erhöhen, Effizienz steigern
  8. type() und isinstance() in Python verstehen: Praktische Beispiele
  9. Java Datenstrukturen: Kernklassen & Collections Framework erkunden
  10. Datenabstraktion in C++: Interface-Implementierung-Trennung