五月天青色头像情侣网名,国产亚洲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)遵守國家法律
贡觉县| 肇源县| 邢台市| 兴城市| 乾安县| 苏尼特左旗| 普洱| 广东省| 启东市| 吕梁市| 太和县| 衡山县| 元江| 南靖县| 厦门市| 通榆县| 泸定县| 刚察县| 元谋县| 秀山| 额济纳旗| 临朐县| 秦安县| 嘉峪关市| 澜沧| 秀山| 伊金霍洛旗| 沈丘县| 江达县| 历史| 墨脱县| 楚雄市| 榕江县| 枝江市| 扎赉特旗| 唐海县| 梓潼县| 满城县| 西吉县| 宣化县| 和静县|