日韩 亚洲一区二_久久vs国产综合色大全_国产精品福利在线_欧美在线一级A片免费观看欧美在线_女同性毛片60分钟

您現(xiàn)在所在的位置:首頁(yè) >學(xué)習(xí)資源 > Python全棧+人工智慧入門(mén)教材 > Python基礎(chǔ)入門(mén)教程24:企業(yè)級(jí)開(kāi)發(fā)基礎(chǔ)5:面向對(duì)象特徵(封裝

Python基礎(chǔ)入門(mén)教程24:企業(yè)級(jí)開(kāi)發(fā)基礎(chǔ)5:面向對(duì)象特徵(封裝

來(lái)源:奇酷教育 發(fā)表於:

面向對(duì)象程序設(shè)計(jì)最主要的有三個(gè)特徵:封裝、繼承、多態(tài)本節(jié)內(nèi)容主要講解面向對(duì)象的第一個(gè)特徵:封裝1 封裝的意義在我們程序開(kāi)發(fā)過(guò)程中,

面向對(duì)象程序設(shè)計(jì)最主要的有三個(gè)特徵:封裝、繼承、多態(tài)
 
本節(jié)內(nèi)容主要講解面向對(duì)象的第一個(gè)特徵:封裝
 
1 封裝的意義
 
在我們程序開(kāi)發(fā)過(guò)程中,定義好類(lèi)型之後就可以通過(guò)類(lèi)型來(lái)創(chuàng)建對(duì)象
如:我們定義一個(gè)中華人民共和國(guó)公民的類(lèi)型

我們會(huì)發(fā)現(xiàn),上面的代碼在運(yùn)行時(shí)是正確的,也就是可以修改age屬性為1000
此時(shí)我們需要明確一個(gè)概念:代碼運(yùn)行正確,但是不代表符合業(yè)務(wù)邏輯,這樣的代碼我們一般會(huì)說(shuō)代碼處理不合法!
2. 實(shí)現(xiàn)封裝的過(guò)程
 
對(duì)於上面這樣的問(wèn)題,我們應(yīng)該怎麼處理呢
常規(guī)的方案就是:
 
定義一種這樣的屬性,屬性只有在當(dāng)前類(lèi)的內(nèi)部可以訪(fǎng)問(wèn)
類(lèi)的外部不能訪(fǎng)問(wèn)這個(gè)屬性,只能通過(guò)類(lèi)提供的方法來(lái)進(jìn)行屬性的取值和賦值
在取值或者賦值的方法中,就可以添加一定的限制處理的代碼了
python中,提供了這樣的一種特殊的變量,變量名稱(chēng)使用兩(liǎng)個(gè)下劃(huà)線(xiàn )開(kāi)頭,這樣的變量智能在類(lèi)的內(nèi)部訪(fǎng)問(wèn),類(lèi)的外部是訪(fǎng)問(wèn)不了的,我們稱(chēng)之為私有屬性




3. 封裝的高級(jí)使用方式
 
我們從上面的代碼中已經(jīng)看到了,可以通過(guò)函數(shù)操作的形式來(lái)進(jìn)行屬性的處理
但是某些情況下,函數(shù)操作的形式並不是特別美妙,我們突發(fā)奇想~想再提供了set/get訪(fǎng)問(wèn)方法的情況下,對(duì)屬性的操作還能像以前那樣直接賦值或者取值進(jìn)行操作



此時(shí),你還能在不看原來(lái)類(lèi)型定義中的get/set,區(qū)分出來(lái)name是否是Person類(lèi)型的屬性還是方法呢?
 
> 封裝的註解方式,在一定程度上,能隱藏我們方法在底層的實(shí)現(xiàn),讓調(diào)用者的操作變得簡(jiǎn)單。但是同時(shí)也降低了代碼的可讀性,後續(xù)的操作中,我們還是遵循原來(lái)封裝的操作方案將類(lèi)的屬性私有化,提供set/get方法進(jìn)行屬性的操作。

>>>更多VR/AR入門(mén)教程:VR入門(mén)