This commit is contained in:
mantaru 2024-09-29 23:05:12 +02:00
commit 93ef43c46f

78
main.py Normal file
View File

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