python / intermediate
Snippet
Property-Dekoratoren zur Kapselung
Der @property-Dekorator ermöglicht es, Methoden zu definieren, auf die wie auf Attribute zugegriffen werden kann. Er bietet einen sauberen Weg, Validierung und Kapselung in Klassen zu implementieren.
snippet.py
1
2
3
4
5
6
7
8
9
10
11
12
13
class Circle:def __init__(self, radius):self._radius = radius@propertydef radius(self):return self._radius@radius.setterdef radius(self, value):if value < 0:raise ValueError('Radius cannot be negative')self._radius = value
Erklärung
1
@property
Verwandelt eine Methode in einen Getter für das Attribut.
2
@radius.setter
Definiert die Logik, die ausgeführt wird, wenn dem Attribut ein Wert zugewiesen wird.