Benutzer-Werkzeuge

Webseiten-Werkzeuge


schule:hunde_und_katzen

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
schule:hunde_und_katzen [2020-01-06 07:38] marco.bakeraschule:hunde_und_katzen [2020-01-13 16:31] (aktuell) marco.bakera
Zeile 1: Zeile 1:
 ====== Programmierübung: Hunde und Katzen ====== ====== Programmierübung: Hunde und Katzen ======
  
-Vervollständige den Quelltext für die folgenden Klassen so, dass alle Tests durchlaufen.+  - Erkläre, was die Methode ''isinstance'' bei den Tests macht (durch einen Quelltextkommentar). 
 +  - Erkläre, was der try-except-Block testet (durch einen Quelltextkommentar). 
 +  - Vervollständige den Quelltext für die folgenden Klassen so, dass alle Tests durchlaufen
 +  - Ergänze Kommentare für deinen Quelltext für jede Zeile (außer den Tests) 
 +  - Erweitere das Programm um zwei weitere abstrakte Klassen ''Biped'' (Zweibeiner) und ''Quadruped'' (Vierbeiner). Ergänze dazu die Klasse ''Animal'' um das Attribut ''number_of_legs'', welches in den beiden neuen Klassen sinnvoll initialisiert wird. Füge eine weitere Klasse ''Parrot'' hinzu. Zeichne nun ein vollständiges Klassendiagramm.
  
 <html> <html>
  
-<iframe src="https://trinket.io/embed/python3/a7423e7194" width="100%" height="600" frameborder="0" marginwidth="0" marginheight="0" allowfullscreen></iframe>+<iframe src="https://trinket.io/embed/python3/b594743f86" width="100%" height="700" frameborder="0" marginwidth="0" marginheight="0" allowfullscreen></iframe>
  
 <!-- <!--
-<file python animals.py>+<file python dogcat.py>
 import abc import abc
 + 
 class Animal(abc.ABC): class Animal(abc.ABC):
     @abc.abstractmethod     @abc.abstractmethod
     def make_noise(self):     def make_noise(self):
-        ... +        pass 
 + 
 class Dog(Animal): class Dog(Animal):
-    ...+    ...  
  
 class Cat(Animal): class Cat(Animal):
     ...     ...
- +  
 + 
 # Tests # Tests
 d = Dog() d = Dog()
Zeile 28: Zeile 32:
 try: try:
     a = Animal()     a = Animal()
 +    assert False
 except TypeError: except TypeError:
-    print("cannot instantiate Animal") +    pass 
 +    
 assert isinstance(d, Dog)  # d is a dog assert isinstance(d, Dog)  # d is a dog
 assert isinstance(c, Cat)  # c is a cat assert isinstance(c, Cat)  # c is a cat
 assert isinstance(d, Animal)  # d is an animal as well assert isinstance(d, Animal)  # d is an animal as well
 assert isinstance(c, Animal)  # c is an animal as well assert isinstance(c, Animal)  # c is an animal as well
 + 
 assert d.make_noise() == "wuff" assert d.make_noise() == "wuff"
 assert c.make_noise() == "miau" assert c.make_noise() == "miau"
 +
 +print("Alle Tests bestanden")
 +
 </file> </file>
 --> -->
Zeile 58: Zeile 66:
     def make_noise(self):     def make_noise(self):
         return "miau"         return "miau"
- 
- 
  
 --></html> --></html>
schule/hunde_und_katzen.1578292688.txt.gz · Zuletzt geändert: 2020-01-06 07:38 von marco.bakera