Python物件導向之封裝

來源:互聯網
上載者:User

標籤:不能   對象屬性   .com   info   完成   定義   code   附加   alt   

廣義的封裝:執行個體化一個對象,給對象空間封裝一些屬性。狹義的封裝:私人制私人成員:私人靜態欄位,私人方法,私人對象屬性對於私人靜態欄位,私人方法,私人對象屬性,類的外部不能訪問.----# 執行個體化對象不能訪問私人靜態欄位,私人方法,私人對象屬性----# 類名不能訪問私人靜態欄位,私人方法,私人對象屬性對於私人靜態欄位,私人方法,私人對象屬性,類的內部可以訪問.對於私人靜態欄位,私人方法,私人對象屬性來說,只能在本類中內部訪問,類的外部,衍生類別均不可訪問.python中用雙底線開頭的方式將屬性隱藏起來(設定成私人的)----#其實這僅僅是一種變形操作----#類中所有底線開頭的名稱如__x都會自動變形成:_類名__x的形式----這種自動變形的特點:--------1.類中定義的__x只能在內部使用,如self.__x,引用的就是變形得到結果。--------2.這種變形其實正是針對外部的變形,在外部是無法通過__x這個名字訪問到的--------3.在子類定義的時候__x不會覆蓋在父類定義的__x,因為子類中變形成:_子類名__x,而父類中變成:_父類名__x            即雙底線開頭的屬性在繼承給子類時,子類是無法覆蓋的。        這種變形需要注意的問題:------------1.這種機制也並沒有真正意義上限制我們從外部直接存取屬性,知道了類名和屬性名稱就可以拼出名字:_類名__屬性名稱------------2.變形的過程只在類的定義是發生一次,在定義後的複製操作,不會變形。------------3.在繼承中,父親如果不讓子類覆蓋自己的方法,可以將方法定義為私人的。封裝不是單純意義上的隱藏1.封裝資料----將資料隱藏起來不是目的。隱藏起來然後對外提供操作該資料的介面,然後我們可以在介面附加上對該資料操作的限制    以此完成對資料屬性操作的嚴格性。2.封裝方法----目睹是隔離複雜度。    提示:在程式設計語言裡面,對外提供的介面(介面可以理解為一個入口),可以是函數,稱為介面函數,這與介面的概念            不一樣,介面代表一組介面函數的集合。

Python物件導向之封裝

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.