Python Mixin模式示例

介绍

个人的粗浅理解。Mixin模式,主要是将不同的功能写成不同的类,这些类被继承之后,子类就会获得这些功能。

但是值得注意的是,虽然子类继承了这些Mixin类,但是它们并不是一种属于的关系,而是一种平级的关系。

一个Mixin类一般只实现一个单一功能。

示例

class Plane(object):
    def __init__(self):
        pass
    def say(self):
        print("I'm chinese plane.")

class AttackMixin(object):
    def attack(self):
        self.say()
        print("da da da!")

class BeenAttackMixin(object):
    def beenattack(self):
        print("Boom, guangguang.")

class BattlePlane(Plane, AttackMixin, BeenAttackMixin):
    pass

j20 = BattlePlane()
j20.attack()
j20.beenattack()

定义了两个Mixin类,分别实现了攻击和被揍两个功能。
结果:

I'm chinese plane.
da da da!
Boom, guangguang.

其实我一开始,疑惑这个AttackMixin类里面self.say()能不能调用成功。现在看来成功了。这要求Plane类和AttackMixin两个类必须同时被继承。这样实例传进来,才有say()方法使用。

注意

  1. 单个Mixin类一般只实现一个功能
  2. 在Minin中一般不要使用super
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值