python单继承中super()用法

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/weixin_43886133/article/details/91348851
  • 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

猜你喜欢

转载自blog.csdn.net/weixin_43886133/article/details/91348851