您好,登錄后才能下訂單哦!
python代碼的封裝方法?這個(gè)問題可能是我們?nèi)粘W(xué)習(xí)或工作經(jīng)常見到的。希望通過這個(gè)問題能讓你收獲頗深。下面是小編給大家?guī)淼膮⒖純?nèi)容,讓我們一起來看看吧!
封裝是面向?qū)ο缶幊陶Z言對客觀世界的模擬,在客觀世界里,對象的狀態(tài)信息都被隱藏在對象內(nèi)部,外界無法直接操作和修改。對一個(gè)類或?qū)ο髮?shí)現(xiàn)良好的封裝,可以達(dá)到以下目的:
隱藏類的實(shí)現(xiàn)細(xì)節(jié)。
讓使用者只能通過事先預(yù)定的方法來訪問數(shù)據(jù),從而可以在該方法里加入控制邏輯,限制對屬性的不合理訪問。
可進(jìn)行數(shù)據(jù)檢查,從而有利于保證對象信息的完整性。
便于修改,提高代碼的可維護(hù)性。
為了實(shí)現(xiàn)良好的封裝,需要從以下兩個(gè)方面來考慮:
將對象的屬性和實(shí)現(xiàn)細(xì)節(jié)隱藏起來,不允許外部直接訪問。
把方法暴露出來,讓方法來控制對這些屬性進(jìn)行安全的訪問和操作。
封裝的目的是,保護(hù)隱私,把不想讓別人知道的東西封裝起來。下面通過例子來理解封裝
億速云- 專業(yè)的python自學(xué)、交流公益平臺(tái)!
python為什么要封裝?
1:封裝數(shù)據(jù):主要原因是:保護(hù)私隱,明確區(qū)分內(nèi)外。將數(shù)據(jù)隱藏起來這不是目的。隱藏起來然后對外提供操作該數(shù)據(jù)的接口,然后我們可以在接口附加上對該數(shù)據(jù)操作的限制,以此完成對數(shù)據(jù)屬性操作的嚴(yán)格控制。
class Teacher: def __init__(self,name,age): self.__name=name self.__age=age def tell_info(self): print('姓名:%s,年齡:%s' %(self.__name,self.__age)) def set_info(self,name,age): if not isinstance(name,str): raise TypeError('姓名必須是字符串類型') if not isinstance(age,int): raise TypeError('年齡必須是整型') self.__name=name self.__age=age t=Teacher('egon',18) t.tell_info() t.set_info('egon',19) t.tell_info()
2:封裝方法:目的是隔離復(fù)雜度
封裝方法舉例:
1. 電視機(jī)本身是一個(gè)黑盒子,隱藏了所有細(xì)節(jié),但是一定會(huì)對外提供了一堆按鈕,這些按鈕也正是接口的概念,所以說,封裝并不是單純意義的隱藏?。?!
2. 快門就是傻瓜相機(jī)為傻瓜們提供的方法,該方法將內(nèi)部復(fù)雜的照相功能都隱藏起來了
提示:在編程語言里,對外提供的接口(接口可理解為了一個(gè)入口),可以是函數(shù),稱為接口函數(shù),這與接口的概念還不一樣,接口代表一組接口函數(shù)的集合體。
感謝各位的閱讀!看完上述內(nèi)容,你們對python代碼的封裝方法大概了解了嗎?希望文章內(nèi)容對大家有所幫助。如果想了解更多相關(guān)文章內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。