继承类构造方法使用

1,调用未绑定的超类构造方法

class Bird:
    def __init__(self):
        self.hungry = True

    def eat(self):
        if self.hungry:
            print("eee")
            self.hungry = False
        else:
            print("No,thanks!")
        # print("eat!")


class SongBird(Bird):
    def __init__(self):
        Bird.__init__(self)
        self.sound = "squak"

    def sing(self):
        print (self.sound)


sb = SongBird()
sb.eat()

 

2,使用super函数

__metaclass__=type#super函数只在新式类中起作用
class Bird:
    def __init__(self):
        self.hungry = True

    def eat(self):
        if self.hungry:
            print("eee")
            self.hungry = False
        else:
            print("No,thanks!")
        # print("eat!")


class SongBird(Bird):
    def __init__(self):
        super(SongBird,self).__init__()
        self.sound = "squak"

    def sing(self):
        print (self.sound)


sb = SongBird()
sb.eat()

一个类继承多个超类的情况下,只需要使用一次super函数就可以

posted @ 2019-06-28 22:19  行走的小z  阅读(363)  评论(0编辑  收藏  举报