封裝的意義和操作
1.學(xué)習(xí)了面向?qū)ο蠛笪劭辏又鴮W(xué)習(xí)了面向?qū)ο蟮姆庋b和操作漱抓,面向?qū)ο蟮姆庋b顧名思義就是把一堆零散的數(shù)據(jù)集成到一起進(jìn)行封裝馏谨,將一些敏感的數(shù)據(jù)進(jìn)行封裝吹菱,不讓外界直接訪問(wèn),通過(guò)Set/Get方法來(lái)實(shí)現(xiàn)間接的訪問(wèn)數(shù)據(jù)吱韭,封裝好的數(shù)據(jù)具有安全的特性吆豹,通過(guò)對(duì)Set/Get的方法的使用可以添加限制條件,達(dá)到對(duì)敏感數(shù)據(jù)訪問(wèn)的阻止和控制的目的。
2.實(shí)現(xiàn)步驟痘煤,先聲明一個(gè)類鸳吸,通過(guò)class來(lái)聲明一個(gè)類,接著初始化這個(gè)類速勇,使用__init__來(lái)初始化類的屬性。Def __init__(self):這樣來(lái)使用初始化坎拐,接著給初始化的數(shù)據(jù)添加屬性烦磁。Def__init__(self, name, age, sex):
Self.name = name
Self.age = age
Self.sex = sex
通過(guò)這種方法來(lái)是用并且將一些屬性添加進(jìn)類中,方便來(lái)回調(diào)用哼勇,讓代碼復(fù)用率高都伪,可讀性增加。通過(guò)這種聲明添加的屬性积担,還并不能實(shí)現(xiàn)限制訪問(wèn)的操作陨晶,在原有基礎(chǔ)上使用雙下劃綫,來(lái)實(shí)現(xiàn)對(duì)數(shù)據(jù)的控制和限制訪問(wèn)帝璧。
Class Person:
Def __init__(self, name, age, sex):
Self.__name = name
Self.__age = age
Self.__sex = sex
通過(guò)加上雙下劃綫先誉,來(lái)使此封裝的數(shù)據(jù)不能被別人不經(jīng)允許就使用。雙下劃綫代表了私有化的烁,而單下劃線也是代表了私有化褐耳,單下劃線更像是一種約定,這種約定隨時(shí)都有可能打破渴庆,雙下劃綫卻是一種強(qiáng)制铃芦,強(qiáng)制不能訪問(wèn),除非使用Set/Get來(lái)間接訪問(wèn)達(dá)到想要進(jìn)行的操作襟雷。__init__后面必須跟__init__(self)這是一種規(guī)定刃滓,但是傳遞參數(shù)時(shí),Python會(huì)自動(dòng)的將Self指向自己耸弄,傳遞的參數(shù)和Self并不沖突咧虎,但是Self卻是必不可少的,在學(xué)面向?qū)ο髸r(shí)计呈,最重要的就是數(shù)據(jù)封裝老客,把每個(gè)封裝的函數(shù)進(jìn)行相互調(diào)用,是面向?qū)ο罄锩鏀?shù)據(jù)封裝的優(yōu)勢(shì)震叮,可以很快的而且減少代碼的復(fù)用率的情況下最好的展現(xiàn)出來(lái)想要的效果胧砰,通過(guò)訪問(wèn)定義類中的函數(shù),就可以完成一系列的操作苇瓣。
3.比如一輛汽車尉间,他的顏色,車輪,外觀顏色都是類哲嘲,而通過(guò)這些類可以實(shí)際的將類實(shí)體為對(duì)象贪薪,這個(gè)對(duì)象就是XX的汽車,通過(guò)汽車的行為和一些屬性來(lái)確定這個(gè)對(duì)象眠副,再將對(duì)象中的功能画切,顏色等,抽象出來(lái)就是類囱怕,比如用類進(jìn)行定義霍弹,將一些汽車的屬性和一些行為封裝到這個(gè)定義的類中,然后再將汽車實(shí)體化為對(duì)象娃弓,這樣就可以通過(guò)對(duì)函數(shù)的調(diào)用來(lái)用面向?qū)ο蟮姆椒▽?shí)現(xiàn)這些典格,比面向過(guò)程中雖然看起來(lái)麻煩了,但是實(shí)際上確是方便了台丛,可以對(duì)一段代碼賦予指揮者耍缴,讓這段代碼替你干任何事,再也不用自己親自去把所有的事情都辦完挽霉,只要找到對(duì)象防嗡,抽象出來(lái)類,然后將數(shù)據(jù)封裝侠坎,這樣就可以直接讓這個(gè)代碼自己去完成很多事情本鸣。