首页 > 代码库 > python super()使用详解
python super()使用详解
1.super的作用
调用父类方法
2.单继承使用示例
#coding:utf-8#单继承class A(object): def __init__(self): self.n=2 def add(self,m): self.n+=mclass B(A): def __init__(self): self.n=3 def add(self,m): super(B,self).add(m) self.n+=3b=B()b.add(3)print b.n
运行结果:
super(B,self)参数说明:
1)B:调用的是B的父类的方法。
2)self:子类的实例
3.多继承使用示例
#多继承class A(object): def __init__(self): self.n=2 def add(self,m): print "A" self.n+=mclass B(A): def __init__(self): self.n=3 def add(self,m): print "B" super(B,self).add(m) self.n+=3class C(A): def __init__(self): self.n=4 def add(self,m): print "C" super(C,self).add(m) self.n+=4class D(B,C): def __init__(self): self.n=5 def add(self,m): print "D" super(D,self).add(m) self.n+=5print D.__mro__d=D()d.add(3)print d.n
运行结果:
python中__mro__属性,表示类的线性解析顺序。
如上例中,D类__mro__的值为[D,B,C,A,object],因此,super(D,self).add(m)会先调用B的add方法,
super(B,self).add(m)会先调用C的add方法,super(C,self).add(m)会先调用A的add方法,结果为20
python super()使用详解
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。