当前位置: 代码迷 >> 综合 >> python Mixin 学习
  详细解决方案

python Mixin 学习

热度:54   发布时间:2023-11-21 05:31:59.0

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()
  • 输出

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