天天看點

Python基礎(八)

1.面向對象的魔法方法

__dev__:

__init__:初始化方法,當類被調用時,即執行初始化方法,不會在控制台中顯示

__str__:當使用了str的魔法方法,當列印是,就會列印出str魔法方法中的return的内容,通常傳回一個字元串

__del__:當類被調用時,如果不使用del,那麼隻有當整個類走完,是以的資料才會被釋放;使用了del,可以在調用類的過程中删除釋放某些變量

2.繼承

面向對象的三大特性(封裝、繼承、多态)

講到繼承,就存在着父類,子類的概念

父類:父類也稱作基類

子類:是父類的派生類,也稱為子類,子類繼承父類的方法和屬性

單繼承:即子類隻繼承一個父類

多繼承:子類可以繼承多個父類,即繼承多個父類的方法和屬性

私有屬性和方法:雖然在繼承中,子類可以重寫,調用父類的屬性和方法,但是存在着私有的,屬于父類的屬性和方法不可以

往往私有屬性和方法都被用在類的内部,不通過對象使用

在多繼承中,如果存在多個父類屬性、方法相同時,則預設使用第一個父類的屬性和方法,按照魔法屬性mro的順序來查找

mro:之後補充

子類重寫父類方法:伴随着需求的不斷疊代,父類的一些方法以及不足以滿足,但是如果重新寫一個新的方法,有會浪費很多的記憶體空間,那麼可以在原有的父類方法基礎上進行重寫;重寫也不是完成推翻,隻是在原有父類方法的基礎上,将需要的留下,将缺少的補充;重寫的好處,重寫父類方法,在一方面并沒有改變父類中的父類方法,但是在子類中又得以滿足,是一種兩全其美的方法。

子類調用父類方法:在子類繼承了父類時,第一時間應該是對父類方法進行解析,了解掌握父類的屬性和方法,當需求相同時,優先選擇調用父類方法來完成需求,調用時使用super()

修改私有屬性的值:一般修改屬性的值有兩種方法,直接方法和間接方法。

直接方法:通過調用私有屬性然後直接更改

間接方法:重新定義一個函數,然後在函數中對私有屬性進行處理

修改類屬性:在類外,想要修改類屬性,必須通過類對象來進行修改,如果采用執行個體對象來修改,隻是産生一個執行個體屬性。