国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python面向?qū)ο笾^承代碼詳解

2020-02-22 23:02:31
字體:
供稿:網(wǎng)友

本文研究的主要是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中繼承中的一些特點:

    在繼承中基類的構(gòu)造(__init__()方法)不會被自動調(diào)用,它需要在其派生類的構(gòu)造中親自專門調(diào)用。 在調(diào)用基類的方法時,需要加上基類的類名前綴,且需要帶上self參數(shù)變量。區(qū)別于在類中調(diào)用普通函數(shù)時并不需要帶上self參數(shù)。 Python總是首先查找對應類型的方法,如果它不能在派生類中找到對應的方法,它才開始到基類中逐個查找。(先在本類中查找調(diào)用的方法,找不到才去基類中找)。 子類只繼承父類所有公有的屬性和方法,并且也可以在子類中通過父類名來調(diào)用,而對于私有的屬性和方法,子類是不進行繼承的,因此在子類中是無法通過父類名來訪問的。

實例:

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)用父類的方法            
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 罗江县| 乌拉特中旗| 澜沧| 大关县| 沁水县| 曲阜市| 万全县| 成都市| 龙胜| 崇仁县| 静海县| 射阳县| 苏尼特左旗| 淮滨县| 田阳县| 厦门市| 新巴尔虎左旗| 通江县| 溧水县| 大姚县| 漳平市| 余江县| 松潘县| 海淀区| 长泰县| 敦化市| 福清市| 扎鲁特旗| 白城市| 呼图壁县| 成都市| 肃宁县| 陈巴尔虎旗| 扎兰屯市| 桐梓县| 龙井市| 龙井市| 方山县| 宣城市| 饶阳县| 文化|