So erben Sie Werte aus einer übergeordneten Klasse, ohne die Attribute in einer untergeordneten Klasse anzugeben

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: So erben Sie Werte aus einer übergeordneten Klasse, ohne die Attribute in einer untergeordneten Klasse anzugeben

by Guest » 08 Feb 2025, 07:15

Ich habe die Aufgabe, eine menschliche Eltern-Kinder-Verbindung über OOP und Vererbung nachzubilden. Es gibt also Klassen für Vater und Mutter, und es gibt auch eine Klasse für Kinder, die zuerst von der Vaterklasse und dann von der Mutterklasse erben sollte (auch ich habe einige zusätzliche Attribute eingefügt, die in den Klassen der Eltern nicht vorhanden sind). p>
Code (unvollendet): < /p>

Code: Select all

class Father:
def __init__(self, surname, name, age, size):
self.surname = surname
self.name = name
self.age = age
if size in range(5, 31):
self.__d_size = size

@property
def d_size(self):
return self.__d_size

@d_size.setter
def d_size(self, size):
if size in range(5, 31):
self.__d_size = size

class Mother:
def __init__(self, surname, name, age, size):
self.surname = surname
self.name = name
self.age = age
if size in range(1, 7):
self.__b_size = size

@property
def b_size(self):
return self.__b_size

@b_size.setter
def b_size(self, size):
if size in range(1, 7):
self.__b_size = size

class Child(Father, Mother):

@property
def gender(self):
# don't bother guessing the principle of the formula and what do "d" and "b" mean here
if (super().d_size + super().b_size) % 2 != 0:
gender = "male"
else:
gender = "female"
return gender

@property
def patronymic(self):
if self.gender == "male":
return super().name + "vich"
else:
return super().name + "vna"

@property
def full_name(self):
return f"{self.surname} {self.name} {self.patronymic}, {self.age} years old, {self.gender}"

if __name__ == '__main__':
alex = Father('Romanov', 'Alexey', 46, 20)
nata = Mother('Naryshkina', 'Natalya', 24, 3)
peter = Child('Peter', 3, 5)  #

Top