您好,登錄后才能下訂單哦!
小編給大家分享一下python為什么要進行封裝,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!
python為什么要封裝?
1:封裝數據:主要原因是:保護私隱,明確區分內外。將數據隱藏起來這不是目的。隱藏起來然后對外提供操作該數據的接口,然后我們可以在接口附加上對該數據操作的限制,以此完成對數據屬性操作的嚴格控制。
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:封裝方法:目的是隔離復雜度
封裝方法舉例:
1. 電視機本身是一個黑盒子,隱藏了所有細節,但是一定會對外提供了一堆按鈕,這些按鈕也正是接口的概念,所以說,封裝并不是單純意義的隱藏!!!
2. 快門就是傻瓜相機為傻瓜們提供的方法,該方法將內部復雜的照相功能都隱藏起來了
提示:在編程語言里,對外提供的接口(接口可理解為了一個入口),可以是函數,稱為接口函數,這與接口的概念還不一樣,接口代表一組接口函數的集合體。
封裝的例子
classA: __x=1 #在屬性前面加兩個下劃線,表示對該屬性進行隱藏,設置成私有,在內部都會變成成:_類名.__x def__test(self): #這里在內部會變形:_A__test,調用的時候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() #只有在類內部才可以通過__foo的形式訪問 #這就是封裝,簡單的隱藏 #a=A() #print(a._A__x) #a._A__test()#不建議在外部直接通過這種方式調用隱藏方法
看完了這篇文章,相信你對python為什么要進行封裝有了一定的了解,想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。