From 93ef43c46f0b5aa47e1288dbad6294d4e44437f8 Mon Sep 17 00:00:00 2001 From: mantaru Date: Sun, 29 Sep 2024 23:05:12 +0200 Subject: [PATCH] add code --- main.py | 78 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 main.py 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()