Merge branch 'task2' of https://gitea.fhgr.ch/zimmersandro/ppe2 into task2

This commit is contained in:
Sandro Zimmermann 2026-03-06 18:36:52 +01:00
commit 99e6d45790

View File

@ -1,41 +1,88 @@
class Hund:
from abc import ABC, abstractmethod
class Hund(ABC):
anzahl_hunde = 0
def __init__(self, name: str, rasse: str, alter: int, gewicht: float):
def __init__(self, name: str, alter: int, gewicht: float, bellgeraeusch: str):
self.name = name
self.rasse = rasse
self.alter = alter
self.gewicht = gewicht
self.bellgeraeusch = bellgeraeusch
Hund.anzahl_hunde += 1
def __repr__(self):
return f"Hund(name={self.name!r}, rasse={self.rasse}, alter={self.alter}, gewicht={self.gewicht}"
def __repr__(self) -> str:
return f"Hund(name={self.name!r}, rasse={self.__class__.__name__}, alter={self.alter}, gewicht={self.gewicht}"
def __str__(self):
return f"{self.name} ist ein {self.alter}-jähriger {self.rasse}"
def __str__(self) -> str:
return f"{self.name} ist ein {self.alter}-jähriger {self.__class__.__name__}"
def bellen(self, n=1) -> int:
print(n * "Woof! ")
@abstractmethod
def bellen(self, n: int = 1) -> None:
print(" ".join([self.bellgeraeusch] * n))
def geburtstag(self):
def geburtstag(self) -> None:
self.alter += 1
print(
f"Alles Gute zum Geburtstag, {self.name}! Du bist jetzt {self.alter} Jahre alt."
)
def ist_welpe(self):
def ist_welpe(self) -> None:
if self.alter < 2:
print(f"{self.name} ist ein {self.alter}-jähriger Welpe")
else:
print(f"{self.name} ist ein {self.alter}-jähriger erwachsener Hund")
def __lt__(self, other): # less than: self < other
return self.alter < other.alter
hund1 = Hund(name="Bello", rasse="Pudel", alter=99, gewicht=357)
hund2 = Hund(name="Dewy", rasse="Labrador", alter=-6, gewicht=1)
def __le__(self, other): # less equal: self <= other
return self.alter <= other.alter
def __gt__(self, other): # greater than: self > other
return self.alter > other.alter
def __ge__(self, other): # greater equal: self >= other
return self.alter >= other.alter
def __eq__(self, other): # equal: self == other
return self.alter == other.alter
class Pudel(Hund):
def __init__(self, name, alter, gewicht):
super().__init__(name, alter, gewicht, "wau")
def bellen(self, n=1):
super().bellen(n)
class Labrador(Hund):
def __init__(self, name, alter, gewicht):
super().__init__(name, alter, gewicht, "wuff")
def bellen(self, n=1):
super().bellen(n)
class Bulldog(Hund):
def __init__(self, name, alter, gewicht):
super().__init__(name, alter, gewicht, "woff")
def bellen(self, n=1):
super().bellen(n)
hund1 = Labrador(name="Bello", alter=33, gewicht=27)
hund2 = Pudel(name="Dewy", alter=6, gewicht=1)
hund3 = Bulldog(name="Stone", alter=15, gewicht=1000)
print(repr(hund1))
print(hund2)
hund2.bellen(3)
hund1.bellen(2)
hund1.geburtstag()
hund2.ist_welpe()
hund1.ist_welpe()
hund3.bellen(4)
print(hund3 > hund2)