Python Mixin解释

python Mixin 学习

解释定义

  1. Mixin 是一种设计模式和设计思想,而不是某个特定类和函数,mixin包含了其他类要使用的方法,其他类可以很方便添加这些方法,相当于把一些类的通用功能提取出来,提供一个灵活的多继承,避免了继承中的==钻石问题==(菱形继承)。

mixin相当于一个不可实例的类,在里面定制一些方法,不用关联初始化,其他类就可以很简单获取使用这些方法,其他类如何获取mixin类中的方法,不同语言有不同的方法,因此有时这个关系被描述为include,而不是inheritance

  1. 优点:

    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()

if __name__ == '__main__':
    solder = Solder()
    solder.work()

输出

......
-------增加功能
开火
走.....
-------增加功能
本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!