From 8a443818fcdb1da9a0c3a5cb35d308556bdf98f7 Mon Sep 17 00:00:00 2001 From: Irina Rueegg Date: Fri, 20 Mar 2026 15:08:15 +0100 Subject: [PATCH] uebungen und Aufgaben 3 --- src/{CWtest.py => a1_CWtest.py} | 0 ...ebungen_klassen_cw.py => a2_klassen_cw.py} | 0 src/a3_klassen2.py | 1 + src/{moduleA.py => u1_moduleA.py} | 0 ...ebung_klassen_Dog.py => u2_klassen_Dog.py} | 0 src/u3_klassen2.py | 121 ++++++++++++++++++ tests/test_moduleA.py | 2 +- 7 files changed, 123 insertions(+), 1 deletion(-) rename src/{CWtest.py => a1_CWtest.py} (100%) rename src/{uebungen_klassen_cw.py => a2_klassen_cw.py} (100%) create mode 100644 src/a3_klassen2.py rename src/{moduleA.py => u1_moduleA.py} (100%) rename src/{uebung_klassen_Dog.py => u2_klassen_Dog.py} (100%) create mode 100644 src/u3_klassen2.py diff --git a/src/CWtest.py b/src/a1_CWtest.py similarity index 100% rename from src/CWtest.py rename to src/a1_CWtest.py diff --git a/src/uebungen_klassen_cw.py b/src/a2_klassen_cw.py similarity index 100% rename from src/uebungen_klassen_cw.py rename to src/a2_klassen_cw.py diff --git a/src/a3_klassen2.py b/src/a3_klassen2.py new file mode 100644 index 0000000..bc68a39 --- /dev/null +++ b/src/a3_klassen2.py @@ -0,0 +1 @@ +""" """ diff --git a/src/moduleA.py b/src/u1_moduleA.py similarity index 100% rename from src/moduleA.py rename to src/u1_moduleA.py diff --git a/src/uebung_klassen_Dog.py b/src/u2_klassen_Dog.py similarity index 100% rename from src/uebung_klassen_Dog.py rename to src/u2_klassen_Dog.py diff --git a/src/u3_klassen2.py b/src/u3_klassen2.py new file mode 100644 index 0000000..e721ec6 --- /dev/null +++ b/src/u3_klassen2.py @@ -0,0 +1,121 @@ +from abc import ABC, abstractmethod + + +class Hund(ABC): + anzahl_hunde = 0 + + def __init__(self, name: str, alter: int, gewicht: float): + self.name = name + self.alter = alter + self.gewicht = gewicht + Hund.anzahl_hunde += 1 + + def __repr__(self): + return ( + f"Hund(name='{self.name}', rasse='{self.rasse}'," + f"alter={self.alter}, gewicht={self.gewicht}kg" + ) + + def __str__(self): + return f"{self.name} ist ein {self.alter}-jähriger {self.rasse}" + + @abstractmethod + def bellen(self, anzahl: int = 1) -> None: + pass + + def geburtstag(self): + self.alter += 1 + print( + f"Alles Gute zum Geburtstag, {self.name}! Du bist jetzt {self.alter} Jahre alt." + ) + return + + +class Pudel(Hund): + def __init__(self, name: str, alter: int, gewicht: float): + super().__init__(name, alter, gewicht) + self.rasse = "Pudel" + self.laut = "Wauw!" + + def bellen(self, anzahl: int = 1) -> None: + print(self.laut * anzahl) + return + + +class Labrador(Hund): + def __init__(self, name: str, alter: int, gewicht: float): + super().__init__(name, alter, gewicht) + self.rasse = "Labrador" + self.laut = "Wuff!" + + def bellen(self, anzahl: int = 1) -> None: + print(self.laut * anzahl) + return + + +class Bulldog(Hund): + def __init___(self, name: str, alter: int, gewicht: float): + super().__init__(name, alter, gewicht) + self.rasse = "Bulldog" + self.laut = "Wuffi!" + + def bellen(self, anzahl: int = 1) -> None: + print(self.laut * anzahl) + return + + +""" +ohne abstract method +class Hund: + anzahl_hunde = 0 + + def __init__ (self, name: str, alter: int, gewicht: float): + self.name = name + self.alter = alter + self.gewicht = gewicht + Hund.anzahl_hunde += 1 + + def __repr__(self): + return ( + f"Hund(name='{self.name}', rasse='{self.rasse}'," + f"alter={self.alter}, gewicht={self.gewicht}kg" + ) + + def __str__(self): + return f"{self.name} ist ein {self.alter}-jähriger {self.rasse}" + + def bellen(self, anzahl=1): + if not self.laut: + print("Wuff!" * anzahl) + else: + print(self.laut * anzahl) + return + + def geburtstag(self): + self.alter += 1 + print( + f"Alles Gute zum Geburtstag, {self.name}! Du bist jetzt {self.alter} Jahre alt." + ) + return + + +class Pudel(Hund): + def __init__(self, name: str, alter: int, gewicht: float): + super().__init__(name, alter, gewicht) + self.rasse = "Pudel" + self.laut = "Wauw!" + +class Labrador(Hund): + def __init__(self, name: str, alter: int, gewicht: float): + super().__init__(name, alter, gewicht) + self.rasse = "Labrador" + self.laut = "Wuff!" +""" + + +if __name__ == "__main__": + hund1 = Pudel("Bello", 1, 2) + hund2 = Labrador("Bello", 4, 3) + hund3 = Bulldog("Bello", 4, 3) + + hund1.bellen(3) diff --git a/tests/test_moduleA.py b/tests/test_moduleA.py index 42fe6cc..fd728dc 100644 --- a/tests/test_moduleA.py +++ b/tests/test_moduleA.py @@ -1,4 +1,4 @@ -from src.moduleA import addition +from src.u1_moduleA import addition def test_a():