commit 93ef43c46f0b5aa47e1288dbad6294d4e44437f8 Author: mantaru Date: Sun Sep 29 23:05:12 2024 +0200 add code diff --git a/main.py b/main.py new file mode 100644 index 0000000..28dce48 --- /dev/null +++ b/main.py @@ -0,0 +1,78 @@ +from abc import ABC, abstractmethod + +# Klasse Medium +class Medium(ABC): + def __init__(self, titel, isbn, verlag): + self.titel = titel + self.isbn = isbn + self.verlag = verlag + + @abstractmethod + def info_ausgeben(self): + pass + + def teil_info_ausgeben(self): + print(f"Titel: {self.titel}") + print(f"ISBN: {self.isbn}") + print(f"Verlag: {self.verlag}") + + +# Klasse Buch +class Buch(Medium): + def __init__(self, titel, isbn, verlag, autor, erscheinungsjahr): + super().__init__(titel, isbn, verlag) + self.erscheinungsjahr = erscheinungsjahr + self.autor = autor + + def info_ausgeben(self): + self.teil_info_ausgeben() + print(f"Autor: {self.autor}") + print(f"Erscheinungsjahr: {self.erscheinungsjahr}") + +# Klasse Tageszeitung +class Tageszeitung(Medium): + def __init__(self, titel, isbn, verlag, erscheinungsdatum): + super().__init__(titel, isbn, verlag) + self.erscheinungsdatum = erscheinungsdatum + + def info_ausgeben(self): + self.teil_info_ausgeben() + print(f"Erscheinungsdatum: {self.erscheinungsdatum}") + +# Klasse Magazin +class Magazin(Medium): + def __init__(self, titel, isbn, verlag, erscheinungsjahr, laufende_nummer): + super().__init__(titel, isbn, verlag) + self.erscheinungsjahr = erscheinungsjahr + self._laufende_nummer = laufende_nummer + + @property + def laufende_nummer(self): + return self._laufende_nummer + + @laufende_nummer.setter + def laufende_nummer(self, laufende_nummer): + if laufende_nummer > 0: + self._laufende_nummer = laufende_nummer + else: + self._laufende_nummer = 0 + print("Laufende Nummer nicht positiv und wird auf 0 gesetzt.") + + def info_ausgeben(self): + self.teil_info_ausgeben() + print(f"Erscheinungsjahr: {self.erscheinungsjahr}") + print(f"Laufende Nummer: {self.laufende_nummer}") + +# Beispiel zur Verwendung der Klassen +buch = Buch("Der Prozess", "978-3-123456-47-2", "Suhrkamp", "Franz Kafka", 1925) +buch.info_ausgeben() + +print("\n---\n") + +tageszeitung = Tageszeitung("Die Zeit", "978-3-123456-48-9", "Zeitverlag", "2023-10-01") +tageszeitung.info_ausgeben() + +print("\n---\n") + +magazin = Magazin("National Geographic", "978-3-123456-49-6", "National Geographic Society", 2023, 10) +magazin.info_ausgeben()