super()函数是用于调用父类的一个方法。
例子1:
class A:
def __init__(self):
print('This is A.__init__')
def say(self,message):
print(message)
class B(A):
def __init__(self):
super(B,self).__init__()
print('This is B.__init__')
def sayy(self,message):
super(B,self).say(message)
b = B()
b.sayy('hello')
# OUT:
# This is A.__init__
# This is B.__init__
# hello
例子2:
class A:
def __init__(self):
print("Enter A")
print("Leave A")
class B(A):
def __init__(self):
print("Enter B")
super(B, self).__init__()
print("Leave B")
class C(A):
def __init__(self):
print("Enter C")
super(C, self).__init__()
print("Leave C")
class D(A):
def __init__(self):
print("Enter D")
super(D, self).__init__()
print("Leave D")
class E(B, C, D):
def __init__(self):
print("Enter E")
super(E, self).__init__()
print("Leave E")
E()
# OUT:
# Enter E
# Enter B
# Enter C
# Enter D
# Enter A
# Leave A
# Leave D
# Leave C
# Leave B
# Leave E