五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

Mixin 類到底 Mix 了啥?

2023-07-27 16:32 作者:Mr藍(lán)琿  | 我要投稿

Mixin 是一個(gè)類,不單獨(dú)使用,被用于混(Mix)入(in)到已有的類中,提供額外的方法。


為什么引入 Mixin 類?我認(rèn)為其原因是我們要用一個(gè)已有的類,但是已有的類中又缺少一些方法,我們又不想去過多修改已有的類。怎么辦? 定義一個(gè) Mixin 類,把它混到已有的類中去。分清哪個(gè)是已有的類,哪個(gè)是 Mixin 類,比較重要。


Python 中的 Mixin


在下面的 Python 代碼中, 已有的類是 Name,其只有一個(gè)初始化方法 __init__() 。 如何為 Name 提供比如將名字全部轉(zhuǎn)為大寫或小寫的功能呢? 當(dāng)然可以直接去修改 Name 這個(gè)類,手動(dòng)添加方法。 可是,如果有時(shí)不方便去修改,那么就定義一個(gè) Mixin 類,本例中叫做 MixinClass,讓 Name 繼承它就可以。 當(dāng)然,這里還是小小修改了 Name, 即在 class Name 的后面添加了 (MixinClass)。

上面的類是 Mixin 類,下面的類是已有的類。 注意:MixinClass 沒有初始化方法,但有 self。



JavaScript 中的 Mixin


JavaScript 也允許 Mixin,不過是混入一個(gè)對(duì)象(而非類)。在下面的 JavaScript 代碼中, 通過 Object.assign() 函數(shù)將 mixinObject 對(duì)象中的兩個(gè)方法復(fù)制到 Name.prototype 中,從而使得類 Name 獲得了 allUpperCase() 與 allLowerCase() 方法。


注意:(1)mixinObject 是個(gè)對(duì)象,在 JavaScript 中,對(duì)象的屬性可以是函數(shù),其實(shí) Python 也可以;(2)mixinObject 中有關(guān)鍵字 this。


JavaScript 與 Python 互通互鑒,Nice 。


Mixin 類到底 Mix 了啥?的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
鄂州市| 周至县| 常熟市| 剑河县| 拜城县| 滕州市| 岑溪市| 上饶市| 松潘县| 确山县| 阳高县| 自治县| 化德县| 义乌市| 响水县| 陇川县| 景泰县| 永宁县| 洛浦县| 曲水县| 镇远县| 岱山县| 夏河县| 罗源县| 望谟县| 蒙山县| 汾西县| 手机| 镇远县| 蒙山县| 汾西县| 马关县| 靖江市| 读书| 蒙阴县| 新乐市| 得荣县| 兰西县| 芦溪县| 博兴县| 南皮县|