From e18a3f062fa0dc6eafd73507b4ce3aa5749a13d2 Mon Sep 17 00:00:00 2001 From: zimmersandro Date: Thu, 5 Mar 2026 12:26:46 +0100 Subject: [PATCH] feat: animal.py tutorial for Interface and Inheritance --- src/tutorial/class/animal.py | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 src/tutorial/class/animal.py diff --git a/src/tutorial/class/animal.py b/src/tutorial/class/animal.py new file mode 100644 index 0000000..77a7406 --- /dev/null +++ b/src/tutorial/class/animal.py @@ -0,0 +1,32 @@ +from abc import ABC, abstractmethod + + +class Animal(ABC): + @abstractmethod + def speak(slef) -> str: + return "..." + + def chorus(self, n: int) -> str: + # Wiederhole den Laut n-mal als eine Zeile" + if n <= 0: + raise ValueError("n muss positiv sein") + return " ".join(self.speak() for _ in range(n)) + + +class Dog(Animal): + def speak(self) -> str: + return "wuff" + + +class Cat(Animal): + def speak(self) -> str: + return "miau" + + +class Cow(Animal): + def speak(self) -> str: + return "muh" + + +cow = Cow() +print(cow.chorus(3))