OOP in Python Lösung+ Prüfungsvorbereitung 1. (a) 6 (b) Objekt (Instanz): x (c) Instanzvariable: b (d) Klassenvariable: a 2. 10 3 x wird als Bezeichner für eine Klassenvariable (mit dem Anfangswert 3) als auch für eine Instanzvariable verwendet. Python kann anhand des Bezeichners vor dem x erkennen, ob es sich um eine Objektoder um eine Klassenvariable handelt. 3. 2 4 4. False True 5. (a) 7 (b) 18 (c) 11 (d) 42 6. class Lampe: def __init__(self): self.zustand = False def toggle(self): if self.zustand == False: self.zustand = True else: self.zustand = False def __str__(self): if self.zustand == True: return ’Die Lampe ist eingeschaltet.’ else: return ’Die Lampe ist ausgeschaltet.’ # Test-Client: L = Lampe() L.toggle() L.toggle() L.toggle() print(L) (nicht verlangt; dient nur der Illustration) # erzeugt einen neue (ausgeschaltete) Lampe # Schaltet die Lampe ein # Schaltet die Lampe aus # Schaltet die Lampe ein # Ausgabe: ’Die Lampe ist eingeschaltet’ 7. class Stack: def __init__(self): self.elemente = [] def push(self, e): self.elemente.append(e) def pop(self): return self.elemente.pop() def isEmpty(self): if len(self.elemente) == 0: return True else: return False # oder k~ A 41 rzer: return (len(self.elmente) == 0) def __len__(self): return len(self.elemente) # Test-Client: s = Stack() s.push(3) s.push(’abc’) s.push(4) s.pop() print(len(s)) (nicht verlangt; dient nur der Illustration) # erzeugt einen leeren Stack # legt die Zahl 3 auf den Stack # legt den String ’abc’ auf den Stack # legt die Zahl 4 auf den Stack # entfernt das oberste Element (4) # Ausgabe: ’2’ (die aktuelle Laenge des Stacks)