1.面向對象的魔法方法
__dev__:
__init__:初始化方法,當類被調用時,即執行初始化方法,不會在控制台中顯示
__str__:當使用了str的魔法方法,當列印是,就會列印出str魔法方法中的return的内容,通常傳回一個字元串
__del__:當類被調用時,如果不使用del,那麼隻有當整個類走完,是以的資料才會被釋放;使用了del,可以在調用類的過程中删除釋放某些變量
2.繼承
面向對象的三大特性(封裝、繼承、多态)
講到繼承,就存在着父類,子類的概念
父類:父類也稱作基類
子類:是父類的派生類,也稱為子類,子類繼承父類的方法和屬性
單繼承:即子類隻繼承一個父類
多繼承:子類可以繼承多個父類,即繼承多個父類的方法和屬性
私有屬性和方法:雖然在繼承中,子類可以重寫,調用父類的屬性和方法,但是存在着私有的,屬于父類的屬性和方法不可以
往往私有屬性和方法都被用在類的内部,不通過對象使用
在多繼承中,如果存在多個父類屬性、方法相同時,則預設使用第一個父類的屬性和方法,按照魔法屬性mro的順序來查找
mro:之後補充
子類重寫父類方法:伴随着需求的不斷疊代,父類的一些方法以及不足以滿足,但是如果重新寫一個新的方法,有會浪費很多的記憶體空間,那麼可以在原有的父類方法基礎上進行重寫;重寫也不是完成推翻,隻是在原有父類方法的基礎上,将需要的留下,将缺少的補充;重寫的好處,重寫父類方法,在一方面并沒有改變父類中的父類方法,但是在子類中又得以滿足,是一種兩全其美的方法。
子類調用父類方法:在子類繼承了父類時,第一時間應該是對父類方法進行解析,了解掌握父類的屬性和方法,當需求相同時,優先選擇調用父類方法來完成需求,調用時使用super()
修改私有屬性的值:一般修改屬性的值有兩種方法,直接方法和間接方法。
直接方法:通過調用私有屬性然後直接更改
間接方法:重新定義一個函數,然後在函數中對私有屬性進行處理
修改類屬性:在類外,想要修改類屬性,必須通過類對象來進行修改,如果采用執行個體對象來修改,隻是産生一個執行個體屬性。