定义一个子类后,子类会自动拥有父类的一切属性和方法
我们通常会在在子类里面添加一些属性和方法,或者修改(重写)一些属性和方法。
如果子类不重写 __init__,实例化子类时,会自动调用父类定义的 __init__。
子类需要重写__init__的一种常见场景就是,子类需要传入更多的参数。()
这时候重写__init__的方式有三种。
(1)把父类的__init__代码拷贝一份到父类,+ 对新增参数进初始化(笨方法、不灵活)
(2)显式调用父类的__init__, + 对新增参数进初始化
class Son(Father):
def __init__(self,arr1,arr2,arr3):
# 先调用父类的初始化方法
Father.__init__(self,arr1,arr2)
self.arr3= arr3# 增加的参数
(3)super() + 对新增参数进初始化
super(子类,self).__init__(参数1,参数2,....)
参考:
https://www.runoob.com/w3cnote/python-extends-init.html Python 子类继承父类构造函数说明
http://www.python3.vip/tut/py/basic/18/#%E7%BB%A7%E6%89%BF%E5%85%B3%E7%B3%BB 自定义类-继承关系