封裝
封裝可以分為兩層:
第一層:類就是一個(gè)袋子,里面可以放屬性和方法。第二層:類中定義私有的屬性和方法,只有類的內(nèi)部能夠調(diào)用(間接調(diào)用),外部無法直接訪問。
在Python中用雙下劃線開頭的方式將屬性和方法隱藏(設(shè)置成私有)
這里我們封裝主要指的是第二層封裝。
封裝的意義
封裝數(shù)據(jù)屬性,可以讓我們明確區(qū)分內(nèi)外,控制外部對(duì)私有屬性的操作行為。
小明:“說人話!”
從封裝的角度看,外界是無法直接訪問和操作私有屬性的,所以我們通過一個(gè)__str__函數(shù)返回顯示我們的私有屬性。
我們嘗試操作一下私有屬性:
很顯然我們無法直接進(jìn)行更改,所以我們需要在內(nèi)部再設(shè)立一個(gè)方法來間接調(diào)用它。
當(dāng)然,到了這里不出意外是有一點(diǎn)意外的了。有大聰明發(fā)問了:為什么我需要間接調(diào)用,我直接person1=('Lynne',18)不就好了嗎?還有,isinstance是什么東西?
我們先解決第一個(gè)問題:
是的沒錯(cuò),確實(shí)可以哈哈哈,但我們還是需要了解一下。
第二個(gè)問題:isinstance是一個(gè)用于判斷類型的函數(shù),會(huì)根據(jù)輸入進(jìn)行判斷,最后返回一個(gè)bool值,True或False。通常用于if條件語句中。
其用法為:
isinstance(變量,類型)
其次,封裝方法可以隔離復(fù)雜度。
舉個(gè)栗子:假如我們?nèi)ャy行取款,那么取款的操作大致就包括輸入密碼,輸入取款金額,打印流水,最后退出的四個(gè)操作。
但是對(duì)于使用者來說,我們只需要讓其知道有取款這一功能即可,所有的方法統(tǒng)一包裝起來,僅向外展示一個(gè)包裝好的功能。第一,其余的功能我們可以隱藏起來;第二,隔離了復(fù)雜度,同時(shí)也提升了安全性。
審核編輯:劉清
-
python
+關(guān)注
關(guān)注
56文章
4797瀏覽量
84742 -
封裝元件
+關(guān)注
關(guān)注
1文章
4瀏覽量
6648
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論