首页 > 编程语言 > 详细

python继承的时候,要重写父类构造函数的原因

时间:2020-06-05 10:57:36      阅读:83      评论:0      收藏:0      [点我收藏+]
class Bird:
def __init__(self):
self.hungry = True
def eat(self):
if self.hungry:
print(‘我饿了‘)
else:
print(‘不饿,谢谢‘)
class SongBird(Bird):
def __init__(self):
self.sound = ‘Aaaaaaaae‘
def sing(self):
print(self.sound)
if __name__ == ‘__main__‘:
sb = SongBird()
sb.sing()
sb.eat()
技术分享图片
在子类继承的时候,构造函数被重写,但是重写的时候没有任何初始化父类属性hungry的代码。这样就导致了错误发生
如果为了达到目的,需要调用父类的构造函数来保证基本的初始化。
而在子类中调用父类构造函数方法:
如果父类中的构造函数为:__init__
(self, student_name, student_age)
那么子类中如下:
1、直接使用父类调用父类构造函数:class.__init__(self)--->Person.__init__(self, student_name, student_age)
2、使用super() ---->
super(Student, self).__init__(student_name, student_age)
        
---->super().__init__(student_name, student_age)

 

 

python继承的时候,要重写父类构造函数的原因

原文:https://www.cnblogs.com/gusseMe/p/13047755.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!