如果想在子類中調用父類的方法可以用類名去直接調用,這時候self參數不能省略。
class Animal: def __init__(self,name,age,weight): self.name=name self.age=age self.weight=weight class Dog(Animal): def __init__(self,name,age,weight,owner): Animal.__init__(self,name,age,weight)#注意這里不能使用Animal(name,age,weight) self.owner=owner d1=Dog('小白','2','20','小黑') print('%s的主人是%s'%(d1.name,d1.owner)) #小白的主人是小黑
上面的方法雖然可以實現基本的功能,但是可拓展性比較差。因為當父類名字發生修該時下面就必須進行修改。這時候可以使用super()方法就可以解決這問題。
class Animal: def __init__(self,name,age,weight): self.name=name self.age=age self.weight=weight class Dog(Animal): def __init__(self,name,age,weight,owner): super().__init__(name,age,weight) self.owner=owner d1=Dog('小白','2','20','小黑') print('%s的主人是%s'%(d1.name,d1.owner))#小白的主人是小黑