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__)

 

posted @ 2019-01-15 15:47  平平无奇小辣鸡  阅读(378)  评论(0编辑  收藏  举报