1. 程式人生 > >python基礎===新式類與經典類

python基礎===新式類與經典類

規則 深入 attribute nbsp 重定義 顯式 通過 對象 定義

首先:

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

Python 3.x中默認都是新式類,不必顯式的繼承object

這兩種類的區別:

新式類重定義的方法更多,當然這不是重點,重點是兩種類在多繼承狀態下查找“方法”的規則不同。

經典類: 深度查找

顯示類:廣度查找

其次:

------新式類對象可以直接通過__class__屬性獲取自身類型:type

------繼承搜索的順序發生了改變,經典類多繼承屬性搜索順序: 先深入繼承樹左側,再返回,開始找右側;新式類多繼承屬性搜索順序: 先水平搜索,然後再向上移動

------新式類增加了__slots__內置屬性, 可以把實例屬性的種類鎖定到__slots__規定的範圍之中

------新式類增加了__getattribute__方法

python基礎===新式類與經典類