使用super()继承 分类: python 小练习 2013-09-18 14:13 320人阅读 评论(0) 收藏
__metaclass__=type #定义使用新式类
class Bird:
def __init__(self):
self.hungry = True #父类中的属性hungry
def eat(self):
if self.hungry:
print 'Ha...Ha'
self.hungry=False
else:
def __init__(self):
self.name='pets'
def eat(self):
print 'I can eat plant'
class songBird(Pets,Bird):
def __init__(self,name='k-bird'):
super(songBird,self).__init__() #使用super进行继承
self.name = name
def song(self):
self.eat() # 先吃饭,再唱歌,无可厚非......哈哈。高兴的别太早,注意此处是调用Pets类中的eat()方法
print 'Hello,everyone, I am %s,Do I sing well?' % self.name
sb=songBird('Penguis')
class Bird:
def __init__(self):
self.hungry = True #父类中的属性hungry
def eat(self):
if self.hungry:
print 'Ha...Ha'
self.hungry=False
else:
print 'No,Thanks'
def __init__(self):
self.name='pets'
def eat(self):
print 'I can eat plant'
class songBird(Pets,Bird):
def __init__(self,name='k-bird'):
super(songBird,self).__init__() #使用super进行继承
self.name = name
def song(self):
self.eat() # 先吃饭,再唱歌,无可厚非......哈哈。高兴的别太早,注意此处是调用Pets类中的eat()方法
print 'Hello,everyone, I am %s,Do I sing well?' % self.name
sb=songBird('Penguis')
sb.song()
继承多个父类中的同一个方法(如调用Bird类、Pets类中共同的eat方法),则根据类名顺序调用第一个类中的方法。如果是class songBird(Pets,Bird),则songBird类中调用eat方法,调用的是Pets类中的eat方法;如果class songBird(Bird,Pets),则songBird类中调用eat方法,调用的是Bird类中的eat方法。
版权声明:本文为博主原创文章,未经博主允许不得转载。