add code
This commit is contained in:
commit
93ef43c46f
78
main.py
Normal file
78
main.py
Normal 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()
|
Loading…
Reference in New Issue
Block a user