capypad
0 Tage Serie
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
python
1
2
3
4
5
6
7
8
9
10
11
12
13
class Circle:
def __init__(self, radius):
self._radius = radius
 
@property
def radius(self):
return self._radius
 
@radius.setter
def 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.