ich sitze an der Prüfungsvorbereitung für Grundlagen Softwaretechnik. Gelehrt wird Python. Die Aufgabe an der ich aktuell sitze ist folgende:
Es sollen die Klassen Saeugetier und Mensch programmiert werden. Die Klasse Saeugetier hat die Eigenschaft "geschlecht", welches mit einem Dekorateur programmiert werden soll. Für das "geschlecht" sollen w, m oder d akzeptiert werden, sonst erhält "geschlecht" den Wert "x".
Die Klasse Mensch soll von der Klasse Saeugetier erben. Die schreibgeschützte Property anrede soll für das Geschlecht "w" den String "Liebe", für "m" "Lieber" und für "d" nur den Namen ausgeben.
Ich habe folgenden Code programmiert und ihn mit der in der Übung erarbeiteten Lösung überprüft. Laut Musterlösung sollte der Code funktionieren:
Code: Alles auswählen
#Übung 10 - Säugetier und Mensch
class Saeugetier:
def __init__(self, geschlecht):
self.geschlecht = geschlecht
@property
def geschlecht (self):
return self.__geschlecht
@geschlecht.setter
def geschlecht(self, geschlecht):
self.geschlecht = "x"
if isinstance (geschlecht, str):
g == geschlecht.lower()
if g == "m" or g == "w" or g == "d":
self.geschlecht = g
return self.__geschlecht
class Mensch (Saeugetier):
def __init__(self, geschlecht, name):
self.name = name
super().__init__(geschlecht)
@property
def anrede(self):
ar = none
if self.geschlecht = "w":
ar = "Liebe" + self.name
elif self.geschlecht = "m":
ar = "Lieber" + self.name
elif self.geschlecht = "d":
ar = self.name
return ar
Ich würde mich sehr freuen, wenn man mir den Fehler erklären könnte. Auch, wenn es Fehler in der Funktionalität geben sollte.