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():