小編給大家分享一下python為什么要進(jìn)行封裝,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!
在界首等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站制作、網(wǎng)站建設(shè) 網(wǎng)站設(shè)計(jì)制作按需網(wǎng)站制作,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),成都全網(wǎng)營銷推廣,外貿(mào)網(wǎng)站建設(shè),界首網(wǎng)站建設(shè)費(fè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ì)對外提供了一堆按鈕,這些按鈕也正是接口的概念,所以說,封裝并不是單純意義的隱藏!?。?/p>
2. 快門就是傻瓜相機(jī)為傻瓜們提供的方法,該方法將內(nèi)部復(fù)雜的照相功能都隱藏起來了
提示:在編程語言里,對外提供的接口(接口可理解為了一個(gè)入口),可以是函數(shù),稱為接口函數(shù),這與接口的概念還不一樣,接口代表一組接口函數(shù)的集合體。
封裝的例子
classA: __x=1 #在屬性前面加兩個(gè)下劃線,表示對該屬性進(jìn)行隱藏,設(shè)置成私有,在內(nèi)部都會(huì)變成成:_類名.__x def__test(self): #這里在內(nèi)部會(huì)變形:_A__test,調(diào)用的時(shí)候a._A__test() print('fromA') def__init__(self): self.__x=10 #變形為self._A__x def__foo(self): #變形為_A.__foo print('fromA') def bar(self): self.__foo() #只有在類內(nèi)部才可以通過__foo的形式訪問 #這就是封裝,簡單的隱藏 #a=A() #print(a._A__x) #a._A__test()#不建議在外部直接通過這種方式調(diào)用隱藏方法
看完了這篇文章,相信你對python為什么要進(jìn)行封裝有了一定的了解,想了解更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!