Heim  >  Artikel  >  Backend-Entwicklung  >  Python-Trick: Datenklassen mit field(default_factory=...) verwenden

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

WBOY
WBOYOriginal
2024-08-31 06:01:02824Durchsuche

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änderlichen Typen unglaublich nützlich sein kann.


Wie es funktioniert

Beim Definieren einer Datenklasse möchten Sie möglicherweise einen veränderlichen Standardwert verwenden, beispielsweise 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, mit veränderlichen Standardwerten umzugehen.

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 werden die Noten für jede neue Student-Instanz mit einer leeren Liste 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.

Das obige ist der detaillierte Inhalt vonPython-Trick: Datenklassen mit field(default_factory=...) verwenden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn