我正在尝试在Python中创建一个父类和一个子类。我已经在父级内部创建了getter函数,这些函数使用self来调用父级的属性。创建子项时,我不想覆盖该功能,只需重新分配该值即可。当我这样做并从孩子那里调用吸气剂时,我仍然会收到父母的属性值。如何强制代码使用孩子的属性,而不必重写getter函数?
我的班级定义如下:
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
答案 0 :(得分:1)
您只需要设置Son
属性即可覆盖父类的属性:
class Son(Dad):
def __init__(self):
super().__init__()
self.likes = "Soccer"
这是实现子优先级的规范方法。