Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung | |||
| modul:archiv:m320:learningunits:lu99:loesungen:lu08-aufgabe_5 [2026/08/30 14:06] – gelöscht - Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1 | modul:archiv:m320:learningunits:lu99:loesungen:lu08-aufgabe_5 [2026/08/30 14:06] (aktuell) – ↷ Seite von modul:m320:learningunits:lu99:loesungen:lu08-aufgabe_5 nach modul:archiv:m320:learningunits:lu99:loesungen:lu08-aufgabe_5 verschoben msuter | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| + | ==== Lösung 6 - Duck-Typing nutzen ==== | ||
| + | |||
| + | === Code-Analyse === | ||
| + | - Duck-Typing erfolgt über die Methoden '' | ||
| + | - Dank der Funktion | ||
| + | * '' | ||
| + | * '' | ||
| + | |||
| + | === Repetition-Vererbung === | ||
| + | |||
| + | <file python animals.py> | ||
| + | class Animal: | ||
| + | def who_are_you(self): | ||
| + | return f" | ||
| + | |||
| + | |||
| + | class Dog(Animal): | ||
| + | def walk(self): | ||
| + | print(f" | ||
| + | |||
| + | |||
| + | class Duck(Animal): | ||
| + | def run(self): | ||
| + | print(f" | ||
| + | |||
| + | |||
| + | class Cup(Animal): | ||
| + | pass | ||
| + | |||
| + | |||
| + | class Man(Animal): | ||
| + | pass | ||
| + | |||
| + | |||
| + | class Bird(Animal): | ||
| + | def fly(self): | ||
| + | print(f" | ||
| + | |||
| + | |||
| + | def please(do, obj): | ||
| + | method = do | ||
| + | if hasattr(obj, | ||
| + | getattr(obj, | ||
| + | else: | ||
| + | print(f" | ||
| + | |||
| + | |||
| + | if __name__ == ' | ||
| + | # Wir müssen nicht wissen, was das Objekt ist. Aber wir wollen das Objekt nur etwas tun lassen, wenn es das kann. | ||
| + | please(" | ||
| + | please(" | ||
| + | please(" | ||
| + | please(" | ||
| + | please(" | ||
| + | |||
| + | </ | ||