Python3中super()的参数传递

本文详细介绍了Python3中super()函数的参数传递规则,包括不写参数、仅传入类型、传入类型和对象以及传入两个类型的情况,并解释了不同参数下super()的查找顺序和绑定方式,强调了在使用super()时需要遵循的类实例关系和方法调用的注意事项。
摘要由CSDN通过智能技术生成

1、 super([type[, object-or-type]]) 

super() 在使用时至少传递一个参数,且这个参数必须是一个类。

通过super()获取到的是一个代理对象,通过这个对象去查找父类或者兄弟类的方法。

2、super()不写参数的情况

class Base:
    def __init__(self):
        print('Base.__init__')


class A(Base):
    def __init__(self):
        super().__init__()
        print('A.__init__')


class B(Base):
    def __init__(self):
        super().__init__()
        print('B.__init__')


class C(Base):
    def __init__(self):
        super().__init__()
        print('C.__init__')


class D(A, B, C):
    def __init__(self):
        super().__init__()  # 等同于 super(D, self).__init__()
        print('D.__init__')


D()

print(D.mro())
View Code

结果:

Base.__init__
C.__init__
B.__init__
A.__init__
D.__init__
[<cl
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值