Python Mixin模式示例

2021-10-09 20:21:00 字數 1047 閱讀 5033

個人的粗淺理解。mixin模式,主要是將不同的功能寫成不同的類,這些類被繼承之後,子類就會獲得這些功能。

但是值得注意的是,雖然子類繼承了這些mixin類,但是它們並不是一種屬於的關係,而是一種平級的關係。

乙個mixin類一般只實現乙個單一功能。

class

plane

(object):

def__init__

(self)

:pass

defsay

(self)

:print

("i'm chinese plane."

)class

attackmixin

(object):

defattack

(self)

: self.say(

)print

("da da da!"

)class

beenattackmixin

(object):

defbeenattack

(self)

:print

("boom, guangguang."

)class

battleplane

(plane, attackmixin, beenattackmixin)

:pass

j20 = battleplane(

)j20.attack(

)j20.beenattack(

)

定義了兩個mixin類,分別實現了攻擊和被揍兩個功能。

結果:

i'm chinese plane.

da da da!

boom, guangguang.

其實我一開始,疑惑這個attackmixin類裡面self.say()能不能呼叫成功。現在看來成功了。這要求plane類和attackmixin兩個類必須同時被繼承。這樣例項傳進來,才有say()方法使用。

單個mixin類一般只實現乙個功能

在minin中一般不要使用super

Python Mixin程式設計機制

mixin程式設計是一種開發模式,是一種將多個類中的功能單元進行組合的利用方式,這聽起來就像是有類的繼承機制就可以實現,然而這與傳統的類繼承有所不同。通常minxin並不作為任何類的基類,也不關心與什麼類一起使用,而是在執行時動態的同其他零散的類一起組合使用。使用mixin機制有如下好處 可以在不修...

Python Mixin程式設計機制

mixin程式設計是一種開發模式,是一種將多個類中的功能單元的進行組合的利用的方式,這聽起來就像是有類的繼 承機制就可以實現,然而這與傳統的類繼承有所不同。通常mixin並不作為任何類的基類,也不關心與什麼類一 起使用,而是在執行時動態的同其他零散的類一起組合使用。使用mixin機制有如下好處 可以...

Python Mixin混入的使用方法

demo encoding utf 8 author kevinlu1010 qq.com class base def f1 self print i am f1 in base def f2 self print i am f2 in base class c0 def f2 self prin...