#### Step 1+2 class Dog: # Leere Klasse pass # Instanz erstellen und Attribute hinzufügen rex = Dog() rex.id_string = 'id#456' rex.id_value = 456 # Weitere Instanz erstellen, diesmal ohne Attribute humboldt = Dog() print(humboldt.id_string) # Fehler! #### Step 3 # Neue Klasse, diesmal mit einer Methode class Cat: def my_method(self): return 42 garfield = Cat() print(garfield.my_method()) # 42 #### Step 4 class Mouse: description = "This is a mouse" # Diese Klasse hat einen Initializer, welchem bei der # Instanziierung Werte übergeben werden def __init__(self, speed, hungry): self.speed = speed # in km/h self.hungry = hungry jerry = Mouse(10, False) othermouse = Mouse(8, True) #### Step 5 othermouse.description = "This is not a mouse" #### Step 6 class Butterfly: def __init__(self, size=1): self.size = size # in mm def get_size(self): # Gibt den Wert des Instanzattributs +3 zurück return self.size + 3 def demo(): # Beispiel für eine Methode, die zur Klasse anstatt # zu einer Instanz gehört return "Hallo Kurs" def __repr__(self): # Methode, die z.B. bei "print" aufgerufen wird return "".format(self.get_size()) bf = Butterfly(7) bff = Butterfly(10) #### Step 7 class ButterChild(Butterfly): def get_size(self): # Dieses Kind macht sich noch größer als sein Parent, # die Methode wird überschrieben return self.size + 50 bc = ButterChild(7) ############################### Weiteres class Kurs: def __init__(self, tutor, count_lectures): self.tutor = tutor self.count_lectures = count_lectures def __add__(self, otherInstance): # Beispiel für das Implementieren einer eingebauten Methode return self.count_lectures + otherInstance.count_lectures kurs1 = Kurs("Herr Müller", 6) kurs2 = Kurs("Frau Müller", 10) kurs3 = Kurs("Frau Test", 4) try: # Hier verwenden wir nun die __add__-Methode print(kurs1 + kurs2) except TypeError as ex: pass count_total = 0 for kurs in [kurs1, kurs2, kurs3]:x count_total += kurs.count_lectures # "+=" ist eine Alternative für: #~ count_total = count_total + kurs.count_lectures print(count_total) print(count_total)