Heim > Backend-Entwicklung > Python-Tutorial > Wie funktioniert der „@property'-Decorator in Python?

Wie funktioniert der „@property'-Decorator in Python?

Susan Sarandon
Freigeben: 2024-12-21 05:30:10
Original
496 Leute haben es durchsucht

How Does the `@property` Decorator Function in Python?

So funktioniert der @property Decorator in Python

Der @property Decorator ist ein leistungsstarkes Tool zum Erstellen von schreibgeschützten oder Lese-/Schreibattributen zu Python-Klassen. Es vereinfacht die Erstellung von Eigenschaften, indem es sie in eine Decorator-Funktion einschließt.

So funktioniert der integrierte Property Decorator

Die integrierte Funktion property() erstellt eine Deskriptorobjekt. Dieses Objekt verfügt über drei Methoden:

  • Getter: Eine Funktion, die den Wert der Eigenschaft zurückgibt.
  • Setter: Eine Funktion, die legt den Wert der Eigenschaft fest.
  • deleter: Eine Funktion, die die löscht property.

Bei Verwendung als Dekorator verwendet property() eine Funktion als Argument. Diese Funktion wird zum Getter für die Eigenschaft.

So funktioniert der Decorator @property

Der @property Decorator ist nur syntaktischer Zucker für den folgenden Code:

def foo(self): return self._foo
foo = property(foo)
Nach dem Login kopieren

Die @decorator-Syntax ersetzt die zu dekorierende Funktion durch den speziellen property()-Deskriptor Objekt.

Eigenschaften mit Dekoratoren erstellen

So erstellen Sie Eigenschaften mit Dekoratoren:

class C:
    @property
    def x(self):
        return self._x

    @x.setter
    def x(self, value):
        self._x = value

    @x.deleter
    def x(self):
        del self._x
Nach dem Login kopieren
  • Der @property-Dekorator erstellt eine Getter-Funktion und hängt es an die _x-Eigenschaft an.
  • Der @x.setter-Dekorator erstellt ein neues Eigenschaftsobjekt und ersetzt der Getter mit der dekorierten Setter-Funktion.
  • Der @x.deleter-Dekorator erstellt ein neues Eigenschaftsobjekt und ersetzt den Getter durch die dekorierte Löschfunktion.

Ausführlich Verstehen

Die Funktion property() gibt ein spezielles Deskriptorobjekt zurück. Dieses Objekt verfügt über zusätzliche Methoden, einschließlich getter, setter und deleter. Diese Methoden sind auch Dekoratoren, mit denen Sie inkrementell ein vollständiges Eigenschaftsobjekt erstellen können.

Die Syntax des Eigenschaftsdekorators ermöglicht Ihnen das Erstellen von Eigenschaften mit verketteten Setter- und Löscherdekoratoren. Das resultierende Eigenschaftsobjekt wird dann als Deskriptor an die Klasse angehängt und ermöglicht das Abrufen, Festlegen und Löschen von Attributen mit benutzerdefiniertem Verhalten.

Das obige ist der detaillierte Inhalt vonWie funktioniert der „@property'-Decorator in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage