python单继沿用父类属性的两种方法

方法一

在子类中用父类调用其init方法(不建议)

方法二

在子类中使用super获得父类的方法

class Aaimal(object):
    type_name = '动物类'

    def __init__(self, name, sex, age):
        self.name = name
        self.sex = sex
        self.age = age

    def eat(self):
        print('吃东西')


class Person(Aaimal):
    def __init__(self, name, sex, age, mind):
        # 方法一 通过父类调用__init__方法,获取父类资源
        Aaimal.__init__(self, name, sex, age)
        self.mind = mind

    def eat(self):
        super(Person, self).eat()   # 执行父类的eat方法 super中的参数可省略
        print('%s吃饭' % self.name)


class Dog(Aaimal):
    def __init__(self, name, sex, age, wang):
        # 方法二 通过super获取父类方法
        super().__init__(name, sex, age)
        self.wang = wang

    def eat(self):
        super().eat()   # 执行父类的eat方法
        print('%s吃骨头' % self.name)


p1 = Person('rock', '', 18, '有思想')
print(p1.__dict__)
p1.eat()

d1 = Dog('旺财', '', 3, '汪汪汪')
d1.eat()
print(d1.__dict__)
原文地址:https://www.cnblogs.com/chen55555/p/10272371.html