Python--面向?qū)ο筇卣?一封裝

一、封裝

1.封裝是什么?

是面向?qū)ο蟮娜筇匦灾?。指的是隱藏對(duì)象中一些不希望被外部所訪問的屬性或者方法。

2.如何隱藏一個(gè)對(duì)象中的屬性?

將對(duì)象的屬性名,修改為一個(gè)外部不知道的名字。

例子

3.如何獲?。ㄐ薷模?duì)象中的隱藏的屬性?

需要提供一個(gè)getter和setter方法使外部可以訪問到屬性。

getter?獲取對(duì)象中的指定屬性(get_屬性名)

setter用來設(shè)置對(duì)象的指定屬性(set_屬性名)

例子

4.封裝的好處

使用封裝,增加了類的定義的復(fù)雜成俗,但是也確保了數(shù)據(jù)的安全性。

1.隱藏了屬性名,使調(diào)用者無法隨意的修改對(duì)象中的屬性

2.增加了getter和setter方法,很好的控制屬性是否是只讀的。

如果希望屬性是只讀的,則可以直接去掉setter方法

如果希望屬性不能被外部訪問,則可以去掉getter方法

3.使用setter方法設(shè)置屬性,可以增加數(shù)據(jù)的驗(yàn)證,確保數(shù)據(jù)的值是正確的。

4.使用getter屬性獲取屬性,使用setter方法設(shè)置屬性??梢栽谧x取屬性和修改屬性的同時(shí)做一些其他的處理。

5.使用getter方法可以表示一些計(jì)算的屬性。

優(yōu)點(diǎn)5的例子

二、隱藏類中的屬性

--可以為對(duì)象的屬性使用雙下劃線開頭,__XXX

雙下劃線開頭的屬性是對(duì)象的隱藏屬性,隱藏屬性只能在類的內(nèi)部訪問,無法通過對(duì)象訪問。

--其實(shí)隱藏屬性只不過是python自動(dòng)為屬性改了一個(gè)名字。

實(shí)際上將名字改為了,_類名__屬性名,比如__name修改為_Person__name

--使用__開頭的屬性,實(shí)際上依然可以在外部訪問,所以這種方式我們一般不用

一般我們會(huì)將一些私有屬性(不希望被外部訪問的屬性)以_開頭

一般情況下,使用_開頭的屬性都是私有屬性,沒有特殊需求不要修改私有屬性。

例子

三、property裝飾器

--@property裝飾器,用來將一個(gè)get方法,轉(zhuǎn)換為對(duì)象的屬性

--添加為property裝飾器以后去,我們就可以像屬性一樣使用get方法。

--使用property裝飾的方法,必須和屬性名是一樣的。

--setter方法的裝飾器:@屬性名.setter

例子
執(zhí)行結(jié)果
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容