1. 程式人生 > >python筆記: 經典類和新式類的區別

python筆記: 經典類和新式類的區別

python 筆記:經典類和新式類的區別

Python 2.x中預設都是經典類,只有顯式繼承了object才是新式類
Python 3.x中預設都是新式類,不必顯式的繼承object
其次:

  1. ——新式類物件可以直接通過class屬性獲取自身型別:type
  2. ——繼承搜尋的順序發生了改變,經典類多繼承屬性搜尋順序: 先深入繼承樹左側,再返回,開始找右側;新式類多繼承屬性搜尋順序: 先水平搜尋,然後再向上移動
  3. ——新式類增加了slots內建屬性, 可以把例項屬性的種類鎖定到slots規定的範圍之中
  4. ——新式類增加了getattribute方法
class
A():
def __init__(self): pass def save(self): print "This is from A" class B(A): def __init__(self): pass class C(A): def __init__(self): pass def save(self): print "This is from C" class D(B,C): def __init__(self): pass fun = D() fun.save() 經典類的答案: This is
from A 新式類的答案: This is from C

連結:
https://www.zhihu.com/question/22475395/answer/134514931
https://www.zhihu.com/question/22475395/answer/133787573
來源:知乎