python教程(九)之特性(3.函数super)

#super 调用这个函数时,将当前类和当前实例作为参数
#对其返回的对象调用方法时,调用的是超类(例如之前的Bird)而不是当前类
#所以在SongBird的构造函数中,可以使用super(SongBird,self)
#在python3中,super可不提供任何参数

class Bird :
    def __init__(self) :
        self.hungry=True
    def eat(self) :
        if self.hungry==True :
            print("开始吃东西")
            self.hungry=False
        else :
            print("吃过了不饿")

class SingBird(Bird) :
    def __init__(self) :
        super().__init__()
        self.sound="嘤嘤嘤"
    def sing(self) :
        print(self.sound)
a=SingBird()
a.sing()#嘤嘤嘤
a.eat()#开始吃东西
a.eat()#吃过了不饿

#即便有多个超类,也只需调用super一次,条件是所有超类的构造函数也使用super

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值