Python built-in Funktion property()

Aus der Python 3 Dokumentation

Gibt ein Eigenschaftsattribut zurück.

Einführung

Die Funktion property() wird verwendet, um Eigenschaftsattribute zu erstellen. Ein Eigenschaftsattribut ist eine spezielle Art von Attribut, das Getter-, Setter- und Deleter-Methoden besitzt. Dies ermöglicht es Ihnen, Logik zum Abrufen, Setzen oder Löschen des Werts eines Attributs hinzuzufügen.

Üblicher ist die Verwendung des @property-Decorators, welcher eine bequemere Möglichkeit ist, property() zu verwenden.

Beispiel

Hier ist ein Beispiel für die Verwendung von property(), um ein schreibgeschütztes Attribut zu erstellen:

class Person:
    def __init__(self, name):
        self._name = name

    def get_name(self):
        print("Getting name")
        return self._name

    # Erstellt eine Eigenschaft
    name = property(get_name)

p = Person("John")
print(p.name)  # Ruft get_name() auf
Getting name
John

Hinweis: p.name = "Jane" würde einen AttributeError auslösen, da kein Setter vorhanden ist.

Und hier ist die gebräuchlichere Methode mit dem @property-Decorator:

class Person:
    def __init__(self, name):
        self._name = name

    @property
    def name(self):
        print("Getting name")
        return self._name

p = Person("John")
print(p.name)
Getting name
John