howto:codingstandards:02_architektur

02 - Architektur

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

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.

Jedes Pythonskript prüft, ob es direkt ausgeführt wird.

Beispiel

def hello():
    print('Hello World')
 
 
if __name__ == '__main__':
    hello()

1)
«name» ist der Name der Property; z.B. @temperature.setter
  • howto/codingstandards/02_architektur.txt
  • Last modified: 2023/11/13 08:56
  • by 127.0.0.1