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