使用super()继承 分类: python 小练习 ...

__metaclass__=type #定义使用新式类

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'


class Pets:
    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方法。



版权声明:本文为博主原创文章,未经博主允许不得转载。

转载于:https://www.cnblogs.com/think1988/p/4628059.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值