如何解决我仍然需要始终在子类中使用init来实例化父类,因为代码仍在运行吗?
在此示例中,我是否还总是需要实例化父类,因为在删除它时它仍然可以工作?
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__
方法,则它将继承自父级,这在您的情况下是正确的行为
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。