Python中子类调用父类的方法

如果想在子类中调用父类的方法可以用类名去直接调用,这时候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))#小白的主人是小黑

猜你喜欢

转载自www.cnblogs.com/linshuhui/p/9016553.html