Python关于super()函数的理解

看下面的例子:

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总能找到它父类所对应的函数。

posted @ 2016-01-09 22:56  翌逍  阅读(358)  评论(0编辑  收藏  举报