super () chama a classe pai
A seção anterior introduziu um método complexo de chamar a classe pai. Agora, vamos introduzir um método simples de chamar a classe pai. Mudaremos o código anterior para herança multicamadas, e cada classe herda apenas uma classe pai.
class Gun(object):
def __init__(self):
self.length = 100
def shoot(self):
print('bang1')
class Wuzi(Gun):
def shoot(self):
# 注意这里要先初始化自己,这样可以避免调用父类方法后再调用自己的方法时,还是父类的方法输出
super().__init__()
super().shoot()
class XiaoWuzi(Wuzi):
def shoot(self):
super().__init__()
super().shoot()
wuzi = XiaoWuzi()
wuzi.shoot()
Neste momento, a saída é bang1, pode-se ver que a rotina do método super () também é inicializada primeiro, e python seguirá a ordem __mro__ para encontrar a classe pai para herdar o método correspondente