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函数就可以