欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

Python super超类方法

发布时间:2025/3/20 32 豆豆
生活随笔 收集整理的这篇文章主要介绍了 Python super超类方法 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

super() 函数是用于调用父类(超类)的一个方法。

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

MRO 就是类的方法解析顺序表, 其实也就是继承父类方法时的顺序表。

语法

以下是 super() 方法的语法:

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

参数

  • type – 类。
  • object-or-type – 类,一般是 self

Python3.x 和 Python2.x 的一个区别是: Python 3 可以使用直接使用 super().xxx 代替 super(Class, self).xxx :

Python3.x 实例:

class A:pass class B(A):def add(self, x):super().add(x) Python2.x 实例: class A(object): # Python2.x 记得继承 objectpass class B(A):def add(self, x):super(B, self).add(x)

返回值
无。

实例
以下展示了使用 super 函数的实例:

''' 遇到问题没人解答?小编创建了一个Python学习交流QQ群:857662006 寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书! ''' #!/usr/bin/python # -*- coding: UTF-8 -*-class FooParent(object):def __init__(self):self.parent = 'I\'m the parent.'print ('Parent')def bar(self,message):print ("%s from Parent" % message)class FooChild(FooParent):def __init__(self):# super(FooChild,self) 首先找到 FooChild 的父类(就是类 FooParent),然后把类B的对象 FooChild 转换为类 FooParent 的对象super(FooChild,self).__init__() print ('Child')def bar(self,message):super(FooChild, self).bar(message)print ('Child bar fuction')print (self.parent)if __name__ == '__main__':fooChild = FooChild()fooChild.bar('HelloWorld')

执行结果:

Parent Child HelloWorld from Parent Child bar fuction I'm the parent.

总结

以上是生活随笔为你收集整理的Python super超类方法的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。