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更注重是屬性或者功能的擴展