„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Python-Trick: Datenklassen mit field(default_factory=...) verwenden

Python-Trick: Datenklassen mit field(default_factory=...) verwenden

Veröffentlicht am 02.11.2024
Durchsuche:154

Python Trick: Using dataclasses with field(default_factory=...)

Das Dataclasses-Modul von Python vereinfacht die Erstellung von Klassen, die zum Speichern von Daten verwendet werden.

Während die meisten Leute über die grundlegende Verwendung Bescheid wissen, gibt es ein weniger bekanntes Funktionsfeld (default_factory=...), das für die Handhabung von Standardwerten in veränderbaren Typen unglaublich nützlich sein kann.


Wie es funktioniert

Beim Definieren einer Datenklasse möchten Sie möglicherweise einen veränderlichen Standardwert verwenden, z. B. eine Liste oder ein Wörterbuch.

Die direkte Verwendung eines veränderlichen Standardwerts kann aufgrund der Art und Weise, wie Standardargumente in allen Instanzen gemeinsam genutzt werden, zu unerwartetem Verhalten führen.

Die Funktion „default_factory“ bietet eine saubere Möglichkeit, veränderliche Standardeinstellungen zu verarbeiten.

Hier ist ein einfaches Beispiel:

from dataclasses import dataclass, field
from typing import List


@dataclass
class Student:
    name: str
    grades: List[int] = field(default_factory=list)  # Use default_factory for mutable default


# Create new Student instances
student1 = Student(name="Alice")
student2 = Student(name="Bob", grades=[90, 85])

# Modify student1's grades
student1.grades.append(95)

print(student1)  # Output: Student(name='Alice', grades=[95])
print(student2)  # Output: Student(name='Bob', grades=[90, 85])


# Output:
# Student(name='Alice', grades=[95])
# Student(name='Bob', grades=[90, 85])

In diesem Beispiel wird „notes“ mit einer leeren Liste für jede neue Student-Instanz initialisiert.
Durch die Verwendung von field(default_factory=list) wird sichergestellt, dass jede Instanz ihre eigene separate Liste erhält, wodurch die Fallstricke gemeinsamer änderbarer Standardeinstellungen vermieden werden.


Warum es cool ist

Die Funktion „default_factory“ ist von unschätzbarem Wert, um häufige Probleme mit veränderlichen Standardargumenten zu vermeiden.

Es hilft sicherzustellen, dass jede Instanz einer Datenklasse ihren eigenen Standardwert hat, wodurch Ihr Code vorhersehbarer wird und subtile Fehler im Zusammenhang mit dem gemeinsamen Status vermieden werden.

Freigabeerklärung Dieser Artikel ist abgedruckt unter: https://dev.to/devasservice/python-trick-using-dataclasses-with-fielddefaultfactory-4159?1 Bei Verstößen wenden Sie sich bitte an [email protected], um ihn zu löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3