從 Python2.2 開始,Python 引入了 new style class。雖然從使用上看,new style class 與 classic class 沒有太大的差別, 但是在實現上, 兩者有很大的區別。比如,下文所展示的基類搜索機制上的不同。
#!/usr/bin/env python
""" classic class """
class CA():
var = 'a'
class CB(CA):
pass
class CC(CA):
var = 'c'
class CD(CB, CC):
pass
""" new-style class """
class NA(object):
var = 'a'
class NB(NA):
pass
class NC(NA):
var = 'c'
class ND(NB, NC):
pass
if __name__ == "__main__":
print CD.var
print ND.var
運行上述代碼,CD.var 的值將是 'a', 而 ND.var 的值將是 'c'。這說明 classic class 的基類搜索機制是深度優先遍歷,而 new style class 的基類搜索機制是廣度優先遍歷。
Python 的詳細介紹:請點這裡
Python 的下載地址:請點這裡