封裝的意義和操作
1.學(xué)習(xí)了面向?qū)ο蠛螅又鴮W(xué)習(xí)了面向?qū)ο蟮姆庋b和操作,面向?qū)ο蟮姆庋b顧名思義就是把一堆零散的數(shù)據(jù)集成到一起進(jìn)行封裝,將一些敏感的數(shù)據(jù)進(jìn)行封裝,不讓外界直接訪問,通過Set/Get方法來實(shí)現(xiàn)間接的訪問數(shù)據(jù),封裝好的數(shù)據(jù)具有安全的特性,通過對(duì)Set/Get的方法的使用可以添加限制條件,達(dá)到對(duì)敏感數(shù)據(jù)訪問的阻止和控制的目的。
2.實(shí)現(xiàn)步驟,先聲明一個(gè)類,通過class來聲明一個(gè)類,接著初始化這個(gè)類,使用__init__來初始化類的屬性。Def __init__(self):這樣來使用初始化,接著給初始化的數(shù)據(jù)添加屬性。Def__init__(self, name, age, sex):
Self.name = name
Self.age = age
Self.sex = sex
通過這種方法來是用并且將一些屬性添加進(jìn)類中,方便來回調(diào)用,讓代碼復(fù)用率高,可讀性增加。通過這種聲明添加的屬性,還并不能實(shí)現(xiàn)限制訪問的操作,在原有基礎(chǔ)上使用雙下劃綫,來實(shí)現(xiàn)對(duì)數(shù)據(jù)的控制和限制訪問。
Class Person:
Def __init__(self, name, age, sex):
Self.__name = name
Self.__age = age
Self.__sex = sex
通過加上雙下劃綫,來使此封裝的數(shù)據(jù)不能被別人不經(jīng)允許就使用。雙下劃綫代表了私有化,而單下劃線也是代表了私有化,單下劃線更像是一種約定,這種約定隨時(shí)都有可能打破,雙下劃綫卻是一種強(qiáng)制,強(qiáng)制不能訪問,除非使用Set/Get來間接訪問達(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)出來想要的效果,通過訪問定義類中的函數(shù),就可以完成一系列的操作。
3.比如一輛汽車,他的顏色,車輪,外觀顏色都是類,而通過這些類可以實(shí)際的將類實(shí)體為對(duì)象,這個(gè)對(duì)象就是XX的汽車,通過汽車的行為和一些屬性來確定這個(gè)對(duì)象,再將對(duì)象中的功能,顏色等,抽象出來就是類,比如用類進(jìn)行定義,將一些汽車的屬性和一些行為封裝到這個(gè)定義的類中,然后再將汽車實(shí)體化為對(duì)象,這樣就可以通過對(duì)函數(shù)的調(diào)用來用面向?qū)ο蟮姆椒▽?shí)現(xiàn)這些,比面向過程中雖然看起來麻煩了,但是實(shí)際上確是方便了,可以對(duì)一段代碼賦予指揮者,讓這段代碼替你干任何事,再也不用自己親自去把所有的事情都辦完,只要找到對(duì)象,抽象出來類,然后將數(shù)據(jù)封裝,這樣就可以直接讓這個(gè)代碼自己去完成很多事情。