问题描述
在此示例中,我是否还总是需要实例化父类,因为在删除它时它仍然可以工作?
class Person:
def __init__(self,name):
self.name = name
@property
def name(self):
return self._name
@name.setter
def name(self,value):
self._name = value
class SubPerson(Person):
# Do I need this an init call? If I remove this init call,it still runs
def __init__(self,name):
super().__init__(name)
@property
def name(self):
return super().name
@name.setter
def name(self,value):
return super(SubPerson,SubPerson).name.__set__(self,value)
s = SubPerson("John")
print(s.name) //John
谢谢!
解决方法
绝对不是。典型的模式是,子级可能需要设置一些父级没有的额外字段,但是如果您完全省略了__init__
方法,则它将继承自父级,这在您的情况下是正确的行为