看下面的例子:
class A: def __init__(self, name): self.name = name def bb(self): print(‘没事就爱瞎BB‘) class B(A): pass class C(B): pass class D(C): pass class E(D): def bb(self): print(‘父类的bb函数执行结果是:‘) super().bb() # bb函数中没有self参数哦 e = E(‘e‘) e.bb()
结果:
父类的bb函数执行结果是:
没事就爱瞎BB
注释:E类有个bb函数,虽然它的直接继承父类D类没有任何属性和方法,但是D类却是继承了C类,C类又是B类的继承者,同理,B又继承了A类,而A类中也有个bb函数。因此,E类的bb函数要覆盖其超类的bb函数,想要使用其父类的bb函数,E类就使用了super()。这里使用super()有个好处,就是不管这个类的继承层次有多少,Python总能找到它父类所对应的函数。
原文:http://www.cnblogs.com/paomaliuju/p/5117489.html