1. 程式人生 > >python面向物件三大特性

python面向物件三大特性

面向物件中的繼承就是繼承的類直接擁有被繼承類的屬性而不需要在自己的類體中重新再寫一遍,其中被繼承的類叫做父類、基類,繼承的類叫做派生類、子類。在python3中如果不指定繼承哪個類,預設就會繼承Object類,而繼承了Object類的類就叫做新式類,而在python2中如果不指定繼承哪個類也不會預設去繼承Object類,而沒有繼承Object類的類就叫做經典類。經典類和新式類的不同就在於對方法的搜尋順序不同,經典類是深度優先即先找自己類內,如果沒有就找左邊第一個父類,沒找到繼續從這個父類的父類中找依次類推直到找到最上一級的父類也沒找到再找左邊第二個父類,然後再重複之前的過程,直到所有父類找一遍沒找到就報錯;而
新式類是廣度優先,當下一個類可以通過其他類找到時就先不去找它,而是找繼承關係中與它的子類同級的其他類,依次類推直到最後找到object類沒有找到指定方法就報錯。新式類搜尋順序圖示如下,還可以通過 類名.mro() 檢視新式類繼承中的屬性搜尋順序。