【python】super()函数的用法详解!

本文详细介绍了super()函数在Python中的作用,用于解决多重继承时的查找顺序和重复调用问题,通过实例演示了如何正确使用super()调用父类方法。
摘要由CSDN通过智能技术生成

      今天分享一个我在实际项目中用到过的super()函数,来说说该函数的主要功能是什么,简单来说,super()函数是用来做调用父类的一个方法。

super() 是用来解决多重继承问题的,直接用类名调用父类方法在使用单继承的时候没问题,但是如果使用多继承,会涉及到查找顺序(MRO)、重复调用(钻石继承)等种种问题。

我们来看看该函数的语法:

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

(1)type:类,可选参数

(2)object-or-type :对象或类,一般是 self

我们通过一些实例来了解该函数的用法:

实例1:

class A:
     def test(self, a):
         b = a+1
         print(b)
class B(A):
    def test(self, a):
        super().test(a)


if __name__ == '__main__':
    R = B()
    R.test(5)

控制台输出:

分析:

根据上述代码及输出可知,我们的子类B继承了父类A,执行R.test(5),会首先执行子类B-->test()函数super().test(a)调用我们的父类的方法,然后会接着执行父类A-->test()函数,我们接着看多个super()函数的实例。

实例2:

class A:
    def __init__(self):
        self.language = 'I love python!'
        print ('python')

    def test(self,a):
        print('%s'% a)



class B(A):
    def __init__(self):
        super(B,self).__init__()    
        print ('python1')


    def test(self,a):
        super(B, self).test(a)
        print (self.language)



if __name__ == '__main__':
    R = B()
    R.test('HelloWorld')

控制台输出:

分析:

super(B,self)首先就是找到B的父类A,然后把B类的对象转换为A类的对象。

总结:

可以简单的理解为super().xx相当于调用了父类中的xx方法。

  • 8
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

==PP

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值