python 面向對象編程——多態 私有屬性 新舊式類

私有屬性

            在編程時有部分功能需要隱藏起來,所以通過__來實現私有屬性

 

 

 

新舊式類

Python中類分兩種:舊式類和新式類:

➤新式類都從object繼承,經典類不需要。

➤新式類的MRO(method resolution order 基類搜索順序)算法採用C3算法廣度優先搜索,而舊式類的MRO算法是採用深度優先搜索

➤新式類相同父類只執行一次構造函數,經典類重複執行多次。

 

其中:

➤截止到python2.1,只存在舊式類。舊式類中,類名和type是無關的:如果x是一箇舊式類,那麼x.__class__定義了x的類名,但是type(x)總是返回<type 'instance'>。這反映了所有的舊式類的實例是通過一個單一的叫做instance的內建類型來實現的,這是它和類不同的地方。

➤新式類是在python2.2爲了統一類和實例引入的。一個新式類只能由用戶自定義。如果x是一個新式類的實例,那麼type(x)和x.__class__是一樣的結果(儘管這不能得到保證,因爲新式類的實例的__class__方法是允許被用戶覆蓋的)。

➤Python 2.x中默認都是經典類,只有顯式繼承了object纔是新式類

➤Python 3.x中默認都是新式類,經典類被移除,不必顯式的繼承object

 

 

 

多態

   多態 不同的 子類對象 調用相同的 父類方法,產生不同的執行結果

   多態 可以 增加代碼的靈活度

   以 繼承 和 重寫父類方法 爲前提

   是調用方法的技巧,不會影響到類的內部設計

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章