02 - Architektur
Datenkapselung
Wir vermeiden direkte Zugriffe von ausserhalb auf die Attribute einer Klasse. Dadurch können wir das Prinzip der Datenkapselung sicherstellen.
Jedes Attribut einer Klasse wird mit @property gekennzeichnet. | |
Setter-Funktionen werden mittels @name1).setter gekennzeichnet. |
Beispiel
class Celsius: def __init__(self, temperature=0): self._temperature = temperature @property def temperature(self): print('Getting value... ') return self._temperature @temperature.setter def temperature(self, value): print('Setting value... ') if value < -273.15: raise ValueError('Temperature below -273 is not possible') self._temperature = value
Main
Zum Testen und zur Vermeidung von Fehlern kann ein Pythonskript unterscheiden, ob es direkt ausgeführt wurde oder als Import von einem anderen Skript aufgerufen wurde.
Beispiel
def hello(): print('Hello World') if __name__ == '__main__': hello()
1)
«name» ist der Name der Property; z.B. @temperature.setter