Mixin(混入)
Mixin是一种开发模式,将多个类中的功能单元的进行组合利用的方式,用于多重继承,类似于JAVA 的接口(interface)
另外,当某个模块不能修改时,通过Mixin方式可以动态添加该类的方法,动态改变类的原有继承体系。
Mixin类的一般命名方式以Mixin,able,ible为后缀
另外不能单独继承Mixin类,而是要组合继承使用Mixin类,且Mixin类写在最前面
举个例子:
一般动物是分两周,哺乳动物和非哺乳动物,哺乳动物最大的特征是哺乳,非哺乳动物最大的特征是卵生
而鸭嘴兽即是卵生的又是哺乳动物
1 class FeipuruMixin: 2 def nuansheng(self): 3 print("I can nuansheng ") 4 5 class Puru: 6 def weinai(self): 7 print("I can weinai") 8 9 10 class Yazuishou(FeipuruMixin,Puru): 11 pass 12 13 y = Yazuishou() 14 y.nuansheng() 15 y.weinai() 16 17 """ 18 结果 19 I am nuansheng 20 I can weinai 21 """
所以很多时候Mixin更注重是属性或者功能的扩展