最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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)遵守國家法律
瑞金市| 潜江市| 贵溪市| 梁河县| 长海县| 鲁甸县| 通江县| 蒙阴县| 阜新| 巴林右旗| 湛江市| 小金县| 尖扎县| 天全县| 秦皇岛市| 嵩明县| 勐海县| 安丘市| 康定县| 武清区| 莎车县| 万源市| 凤城市| 垣曲县| 灵石县| 岳阳县| 邹平县| 调兵山市| 博野县| 通江县| 湟中县| 水城县| 河曲县| 敦化市| 花莲县| 卢龙县| 白山市| 吴旗县| 抚远县| 敦煌市| 东宁县|