本文研究的主要是Python面向?qū)ο笾^承的相關(guān)內(nèi)容,具體如下。
Python 繼承
即一個派生類(derived class)繼承基類(bass class)字段和方法。繼承也允許把一個派生類的對象作為一個基類對象對待。例如,有這樣一個設(shè)計,一個Cat類型的對象派生自Animal類,這是模擬”是一個(is-a)”關(guān)系(例如,Cat是一個Animal)。
繼承實現(xiàn)了代碼的重用。
繼承的基本語法:
class 派生類名(基類名1 [, 基類名2....]):
基類名寫在括號里,基本類是在類定義的時候,在元組之中指明的。如果在繼承元組中列了一個以上的類,那么它就被稱作”多重繼承” 。
多重繼承
Python支持多重繼承,也就是一個子類可以有多個父類,父類間用逗號隔開。
在多重繼承中,子類有那么多的父類,那子類實例化時,構(gòu)造方法是怎樣調(diào)用的呢?
這里需要記住一點:
多重繼承中,構(gòu)造方法以第一個父類為中心。如果子類重新定義了構(gòu)造方法,就不會調(diào)用父類的構(gòu)造方法,構(gòu)造就會只調(diào)用第一個父類的構(gòu)造方法,并且如果父類中有同名的方法時,通過子類的實例對象去調(diào)用的該方法也是第一個父類中的方法。當然如果你需要在子類中用來某個或某幾個父類的構(gòu)造方法,需要顯示的去調(diào)用父類的構(gòu)造方法。
在python中繼承中的一些特點:
實例:
class Parent(object): # define parent class parentAttr = 100 def __init__(self): print "Calling parent constructor" def parentMethod(self): print 'Calling parent method' def setAttr(self, attr): Parent.parentAttr = attr def getAttr(self): print "Parent attribute :", Parent.parentAttrclass Child1(Parent): # define child1 class def __init__(self): print "Calling child1 constructor" def childMethod(self): print 'Calling child1 method' Parent.parentMethod(self) #調(diào)用基類的方法,所以要加上參數(shù)selfclass Child2(Parent): # define child2 class def childMethod(self): print 'Calling child2 method' self.parentMethod() #子類調(diào)用自己從父類那繼承過來的父類的方法c1 = Child1() # 實例化子類 1c2 = Child2() # 實例化子類 2c1.childMethod() # 調(diào)用子類的方法 c2.childMethod() # 調(diào)用子類的方法 c1.parentMethod() # 調(diào)用父類方法 c1.setAttr(200) # 再次調(diào)用父類的方法 c1.getAttr() # 再次調(diào)用父類的方法
新聞熱點
疑難解答