Python:如何正确地重新分配属性以使用父类函数

Python:如何正确地重新分配属性以使用父类函数,python,inheritance,Python,Inheritance,我正在尝试用Python创建父类和子类。我在父级中创建了getter函数,使用self调用父级的属性。在创建子函数时,我不想重写该函数,只需重新赋值即可。当我这样做,并从子对象调用getter时,我仍然会收到父对象的属性值。如何强制代码使用子属性而不必重写getter函数 我的班级定义如下: class-Dad: 定义初始化(自): self.likes=“棒球” self.name=“约翰” def get_喜欢(自我): 打印(self.likes) def get_名称(自身): 打印(s

我正在尝试用Python创建父类和子类。我在父级中创建了getter函数,使用self调用父级的属性。在创建子函数时,我不想重写该函数,只需重新赋值即可。当我这样做,并从子对象调用getter时,我仍然会收到父对象的属性值。如何强制代码使用子属性而不必重写getter函数

我的班级定义如下:

class-Dad:
定义初始化(自):
self.likes=“棒球”
self.name=“约翰”
def get_喜欢(自我):
打印(self.likes)
def get_名称(自身):
打印(self.name)
def工作(自我):
打印(“程序员”)
班子(爸爸):
定义初始化(自):
self.likes=“足球”
super()。\uuuu init\uuuuu()
def工作(自我):
打印(“学生”)
在尝试运行代码时

d=Dad()
s=子()
d、 获取名称()
d、 得到你喜欢的东西
d、 作品()
s、 获取名称()
s、 得到你喜欢的东西
s、 作品()
输出如下所示:

John
Baseball
Programmer
John
Baseball
Student
我期望的结果是:

John
Baseball
Programmer
John
Soccer
Student

您只需设置
子属性
即可覆盖父类的属性:

class Son(Dad):
    def __init__(self):
        super().__init__()
        self.likes = "Soccer"

这是实现子优先级的标准方法。

因此问题归结为super()。\u init()和self.likes=“Soccer”?之间的行顺序,对。每一个设置
likes
属性。与任何其他变量一样,第二个变量覆盖第一个变量。