Python 多重继承问题(饮料问题)

调用父类同名方法


定义类:

class Drinkable:
    def drinkAdvice(self):
        print("请健康饮用产品!")  # 定义方法drinkAdvice(),表示饮用建议
class Wine(Drinkable): # 继承Drinkable的drinkAdvice()方法并更新,
    def __init__(self, color):  # 定义一个String类型的成员变量color
        self.color = color

    def showColor(self):
        print(f"酒的颜色:{self.color}")

    def drinkAdvice(self):      # 定义一个方法showColor()用于输出酒的颜色
        Drinkable.drinkAdvice(self)
        print("少喝酒多吃菜!")
class Milk(Drinkable):  # 继承Drinkable的drinkAdvice()方法并更新
    def __init__(self, falvor):    # 定义一个String类型的成员变量flavor
        self.falvor = falvor

    def showFalvor(self):          # 定义一个方法showFavor()用于输出奶的风味。
        print(f"牛奶的风味:{self.falvor}")

    def drinkAdvice(self):      
        Drinkable.drinkAdvice(self)
        print("多喝牛奶长的高")
class Drinker(Wine, Milk):  #定义一个Drinker类,表示饮用者
    def __init__(self, falvor, color):  
        Milk.__init__(self, falvor)
        Wine.__init__(self, color)

    def toDrink(self, drink):  # 定义一个方法toDrink (self,drink)
        if drink == '酒':       
            Wine.drinkAdvice(self)     # 判断drink引用的哪个子类的实例
            Wine.showColor(self)
        elif drink == '牛奶':
            Milk.drinkAdvice(self)
            Milk.showFalvor(self)

主程序: 

d = Drinker('草莓', '红色')
d.toDrink('牛奶')
d.toDrink('酒')

结果: 


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值