經典類和新式類的區別

#經典類
class My:
  passpython

#新式類
class My2(object):
  passclass


######python3裏面沒有任何的區別object

例:方法

class A(object):
  def x(self):
    print('A')
class B(A):
  # def x(self):
    # print('B')
    pass
class C(A):
  def x(self):
    print('C')

class D(B,C):
  pass


s = D()
s.x()

 

*** 區別 *** 只限 python 2 ***

區別1、

經典類是 深度優先:
先找 B -> B 要是沒有x()方法,則找 A -> 而後再找 C

新式類是 廣度優先:
先找 B -> B 要是沒有x()方法,則找 C -> 而後再找 A


區別2、

經典類不能用 super(用於自動幫你找到父類)

新式類能夠用 super

相關文章
相關標籤/搜索