Я пытаюсь создать родительский класс и дочерний класс в Python. Я создал функции getter внутри родителя, которые вызывают атрибуты родителя, используя self. При создании дочернего элемента я не хочу переопределять функцию, просто переназначаю значение. Когда я делаю это и вызываю метод получения от ребенка, я все равно получаю значение атрибута родителя. Как заставить код использовать атрибут потомка без необходимости переопределять функцию получения?
Мои определения классов следующие:
class Dad:
def __init__(self):
self.likes = "Baseball"
self.name = "John"
def get_likes(self):
print(self.likes)
def get_name(self):
print(self.name)
def works(self):
print("Programmer")
class Son(Dad):
def __init__(self):
self.likes = "Soccer"
super().__init__()
def works(self):
print("Student")
При попытке запустить код,
d = Dad()
s = Son()
d.get_name()
d.get_likes()
d.works()
s.get_name()
s.get_likes()
s.works()
вывод выглядит так:
John
Baseball
Programmer
John
Baseball
Student
Мой желаемый результат будет:
John
Baseball
Programmer
John
Soccer
Student