当前位置:   article > 正文

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

super函数的用法

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

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

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

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

(1)type:类,可选参数

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

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

实例1:

  1. class A:
  2. def test(self, a):
  3. b = a+1
  4. print(b)
  5. class B(A):
  6. def test(self, a):
  7. super().test(a)
  8. if __name__ == '__main__':
  9. R = B()
  10. R.test(5)
'
运行

控制台输出:

分析:

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

实例2:

  1. class A:
  2. def __init__(self):
  3. self.language = 'I love python!'
  4. print ('python')
  5. def test(self,a):
  6. print('%s'% a)
  7. class B(A):
  8. def __init__(self):
  9. super(B,self).__init__()
  10. print ('python1')
  11. def test(self,a):
  12. super(B, self).test(a)
  13. print (self.language)
  14. if __name__ == '__main__':
  15. R = B()
  16. R.test('HelloWorld')
'
运行

控制台输出:

分析:

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

总结:

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Guff_9hys/article/detail/845558
推荐阅读
相关标签
  

闽ICP备14008679号