溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

python代碼的封裝方法

發(fā)布時(shí)間:2020-09-01 09:48:40 來源:億速云 閱讀:202 作者:小新 欄目:編程語言

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è)資訊頻道。

向AI問一下細(xì)節(jié)

免責(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)容。

AI