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

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

Susan Sarandon
Susan SarandonOriginal
2024-12-21 05:30:10495Durchsuche

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)

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
  • 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!

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