版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
super().__init__
相对于类名.__init__
,在单继承上⽤法基本⽆差- 单继承时,使⽤super⽅法,则不能全部传递,只能传⽗类⽅法所需的参数,否则会报错
class A(object):
def __init__(self, name):
print('A 的__init__开始被调⽤')
self.name = name
class B(A):
def __init__(self, name, age):
print("B 的__init__开始被调用")
self.age = age
super().__init__(name)
print('B 的__init__ 结束调用')
class C(B):
def __init__(self, name, age, gender):
print('C 的init开始被调⽤')
self.gender = gender
super().__init__(name, age) # 单继承不能提供全部参数
print('C 的init结束被调⽤')
gs = C('林志玲', 18, '女')
print('姓名:', gs.name)
print('年龄:', gs.age)
# 输出结果
C 的init开始被调⽤
B 的__init__开始被调用
A 的__init__开始被调⽤
B 的__init__ 结束调用
C 的init结束被调⽤
姓名: 林志玲
年龄: 18