python Mixin 学习

python Mixin 学习

解释定义

  1. Mixin 是一种设计模式和设计思想,而不是某个特定类和函数,mixin包含了其他类要使用的方法,其他类可以很方便添加这些方法,相当于把一些类的通用功能提取出来,提供一个灵活的多继承,避免了继承中的钻石问题(菱形继承)。
    mixin相当于一个不可实例的类,在里面定制一些方法,不用关联初始化,其他类就可以很简单获取使用这些方法,其他类如何获取mixin类中的方法,不同语言有不同的方法,因此有时这个关系被描述为include,而不是inheritance

  2. 优点:

1.在不修改类的代码基础上,对类进行功能增删
2.增加代码复用,减少类的产生
3.可以根据开发需要,动态调整功能

例子

  • 代码
# 原始代码
class Role:
    def run(self):
        print('跑......')
        
        
class SkillMixin:
    def fire(self):
        print('开火')
        
class WalkMixin:
    def walk(self):
        print('走.....')
        
# 不修改基础上增加功能
class Solder(Role,SkillMixin,WalkMixin):
    def use_list(self):
        return [self.fire,self.walk]
    
    def use(self):
        print('-------增加功能')
        for action in self.use_list():
            action()
        print('-------增加功能')
    
    def work(self):
        self.run()
        self.use()
        


solder = Solder()
solder.work()
  • 输出

跑…
-------增加功能
开火
走…
-------增加功能

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值