Grundlegende Syntax und Verwendung
Um eine DataClass und ihre Syntax zu verstehen, müssen Sie zuerst das grundlegende Layout und die Grundstruktur einer Python -Klasse verstehen. Unten finden Sie ein Beispiel, das eine einfache Python -Klasse zeigt:
Klasse StockInhand:In der obigen Code -Probe wurde eine neue Klasse namens „StockInhand“ mit einer darin definierten „__init__“ -Methode erstellt. Die __init__ -Methode wird automatisch aufgerufen, wenn Sie eine neue Instanz der StockInhand -Klasse erstellen. In diesem Fall wurde die __init__ -Methode mit einigen obligatorischen Argumenten definiert. Sie können also keine neue Instanz von StockInhand erstellen, ohne einige Werte für notwendige Argumente. Das Argument „Selbst“ enthält einen Hinweis auf die Instanz einer Klasse, sodass Sie es verwenden können, um auf jede Variable oder Methode innerhalb einer Klasse zu verweisen, solange diese Variablen und Methoden durch die Verwendung des Selbstarguments definiert wurden. Das Selbstargument fungiert als Convenience -Tool und kann alles benannt werden. Sie können es auch vollständig weglassen. In den letzten Aussagen wird eine neue Instanz der StockInhand -Klasse erstellt und auf die Variablen werden mithilfe von Punktnotation zugegriffen.
Nachdem Sie das obige Code -Beispiel ausgeführt haben, sollten Sie die folgende Ausgabe erhalten:
40 50 60Die gleiche Klasse kann mit DataClass wie folgt definiert werden:
aus DataClasses importieren Sie DataClassDie erste Anweisung importiert den Dekorator „DataClass“ aus dem Modul „DataClasses“. Dekorateure können verwendet werden, um das Verhalten von Python -Objekten zu ändern, ohne sie tatsächlich zu ändern. In diesem Fall ist der DataClass -Dekorator vordefiniert und stammt aus dem DataClasses -Modul. Um eine DataClass zu definieren, müssen Sie Dataclass -Dekorateur mit „@“ -Symbol an eine Python -Klasse anhängen, wie in der obigen Code -Probe gezeigt. In den nächsten Aussagen werden Variablen in der DataClass unter Verwendung von Typ -Tipps definiert, um anzuzeigen, welcher Objekttyp sie sind. Typ -Hinweise wurden in Python 3 eingeführt.6 und sie werden mit „:“ (Colon) Symbolen definiert. Sie können eine neue Instanz von Dataclass erstellen wie jede andere Python -Klasse. Nachdem Sie das obige Code -Beispiel ausgeführt haben, sollten Sie die folgende Ausgabe erhalten:
40 50 60Beachte. Hier ist ein Beispiel:
aus DataClasses importieren Sie DataClassEs wurde eine neue Methode namens "Total_Stock" erstellt, und ein Typ Hinweis mit dem int "reservierten Schlüsselwort" wurde ihm zugewiesen, um den Typ des Rückgabewerts anzuzeigen. Nachdem Sie das obige Code -Beispiel ausgeführt haben, sollten Sie die folgende Ausgabe erhalten:
150Variablen in Dataclass -Objekten können Standardwerte haben
Sie können Standardwerte für Daten von DataClasses nach Typ -Hinweisen zuweisen. Hier ist ein Beispiel:
aus DataClasses importieren Sie DataClassIn der zweiten letzten Erklärung wurden bei der Erstellung einer neuen Instanz von StockInhand DataClass keine Argumente vorgelegt, sodass Standardwerte verwendet wurden. Nachdem Sie das obige Code -Beispiel ausgeführt haben, sollten Sie die folgende Ausgabe erhalten:
150Dataclass -Mitglieder sind veränderlich
DataClasses sind veränderlich, sodass Sie den Wert seiner Mitglieder ändern können, indem Sie einen Verweis auf sie erhalten. Unten finden Sie ein Code -Beispiel:
aus DataClasses importieren Sie DataClassDer Wert der Äpfelvariablen wurde geändert, bevor die Methode Total_Stock aufgerufen wird. Nachdem Sie das obige Code -Beispiel ausgeführt haben, sollten Sie die folgende Ausgabe erhalten:
210Erstellen einer DataClass aus einer Liste
Sie können eine DataClass mit der Methode "make_dataclass" programmgesteuert erstellen, wie im folgenden Code -Beispiel gezeigt:
DataClasses importierenDie make_dataclass -Methode nimmt einen Klassennamen und eine Liste von Mitgliedsfeldern als zwei obligatorische Argumente an. Sie können die Mitglieder als eine Liste von Tupeln definieren, bei denen jedes Tupel den Namen der Variablen, seinen Typ und seinen Standardwert enthält. Das Definieren des Standardwerts ist nicht erforderlich. Sie können ihn weglassen, um keinen Standardwert zuzuweisen. Das optionale Namespace-Argument nimmt ein Wörterbuch an, mit dem Elementfunktionen mithilfe von Schlüsselwertpaaren und Lambda-Funktionen definiert werden können. Der obige Code ist genau gleichwertig mit der manuellen Defestierung der folgenden DataClass:
aus DataClasses importieren Sie DataClassNachdem Sie die beiden oben genannten Code -Beispiele ausgeführt haben, sollten Sie die folgende Ausgabe erhalten:
210Warum eine Daten anstelle einer Klasse verwenden??
Sie fragen sich vielleicht, warum Sie DataClasses verwenden, wenn sie fast die gleichen wie andere Python -Klassen sind? Einer der Hauptvorteile bei der Verwendung von DataClasses ist die Übersichtlichkeit. Sie können DataClasses mit sauberen und minimalen Abkürzungen ohne viel Boilerplate -Code erstellen. Sie sind speziell für die Verwendung als Datencontainer ausgelegt, bei denen Variablen mithilfe von Punktnotation einfach zugegriffen werden können. Sie können jedoch auch DataClasses als vollwertige Klassen verwenden. In einfachen Worten, wenn Sie eine Python -Klasse verwenden möchten, um sie als Datenspeicher zu verwenden, scheint DataClass eine bessere Wahl zu sein.
Abschluss
DataClasses in Python bieten eine minimale Möglichkeit, um schnell Python -Klassen zu erstellen, die als Datenspeicher verwendet werden sollen. Sie können Verweise auf Mitglieder von DataClasses mit Punktnotation erhalten, und sie sind besonders nützlich, wenn Sie nach Wörterbüchern wie Schlüsselwertpaaren suchen, auf die mit DOT-Notation zugegriffen werden kann.