Python中的單繼承與多繼承實(shí)例分析
本文實(shí)例講述了Python中的單繼承與多繼承。分享給大家供大家參考,具體如下:
單繼承
一、介紹
Python 同樣支持類的繼承,如果一種語(yǔ)言不支持繼承,類就沒有什么意義。派生類的定義如下所示:
class DerivedClassName(BaseClassName1): <statement-1> . . . <statement-N>
需要注意圓括號(hào)中基類的順序,若是基類中有相同的方法名,而在子類使用時(shí)未指定,python從左至右搜索 即方法在子類中未找到時(shí),從左到右查找基類中是否包含方法。
BaseClassName(示例中的基類名)必須與派生類定義在一個(gè)作用域內(nèi)。
除了類,還可以用表達(dá)式,基類定義在另一個(gè)模塊中時(shí)這一點(diǎn)非常有用:
class DerivedClassName(modname.BaseClassName):
二、代碼
# -*- coding:utf-8 -*- #! python3 class people: #定義基本屬性 name ='' age =0 #定義私有屬性,私有屬性在類外部無(wú)法直接進(jìn)行訪問(wèn) __weight =0 #定義構(gòu)造方法 def __init__(self,n,a,w): self.name = n self.age = a self.__weight = w def speak(self): print("%s 說(shuō): 我 %d 歲。"%(self.name,self.age)) #單繼承示例 class student(people): grade ='' def __init__(self,n,a,w,g): #調(diào)用父類的構(gòu)造函數(shù),下面兩種方式都可以 #people.__init__(self,n,a,w) super().__init__(n,a,w) self.grade = g #覆寫父類的方法 def speak(self): print("%s 說(shuō): 我 %d 歲了,我在讀 %d 年級(jí)"%(self.name,self.age,self.grade)) s = student('ken',10,60,3) s.speak()
三、運(yùn)行結(jié)果
ken 說(shuō): 我 10 歲了,我在讀 3 年級(jí)
多繼承
一、介紹
Python同樣有限的支持多繼承形式。多繼承的類定義形如下例:
class DerivedClassName(Base1, Base2, Base3): <statement-1> . . . <statement-N>
需要注意圓括號(hào)中父類的順序,若是父類中有相同的方法名,而在子類使用時(shí)未指定,python從左至右搜索 即方法在子類中未找到時(shí),從左到右查找父類中是否包含方法。
二、代碼
# -*- coding:utf-8 -*- #! python3 #類定義 class people: #定義基本屬性 name ='' age =0 #定義私有屬性,私有屬性在類外部無(wú)法直接進(jìn)行訪問(wèn) __weight =0 #定義構(gòu)造方法 def __init__(self,n,a,w): self.name = n self.age = a self.__weight = w def speak(self): print("%s 說(shuō): 我 %d 歲。"%(self.name,self.age)) #單繼承示例 class student(people): grade ='' def __init__(self,n,a,w,g): #調(diào)用父類的構(gòu)函 people.__init__(self,n,a,w) self.grade = g #覆寫父類的方法 def speak(self): print("%s 說(shuō): 我 %d 歲了,我在讀 %d 年級(jí)"%(self.name,self.age,self.grade)) #另一個(gè)類,多重繼承之前的準(zhǔn)備 class speaker(): topic ='' name ='' def __init__(self,n,t): self.name = n self.topic = t def speak(self): print("我叫 %s,我是一個(gè)演說(shuō)家,我演講的主題是 %s"%(self.name,self.topic)) #多重繼承 class sample(speaker,student): a ='' def __init__(self,n,a,w,g,t): student.__init__(self,n,a,w,g) speaker.__init__(self,n,t) test = sample("Tim",25,80,4,"Python") test.speak()#方法名同,默認(rèn)調(diào)用的是在括號(hào)中排前地父類的方法
三、運(yùn)行結(jié)果
我叫 Tim,我是一個(gè)演說(shuō)家,我演講的主題是 Python
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python面向?qū)ο蟪绦蛟O(shè)計(jì)入門與進(jìn)階教程》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python Socket編程技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python編碼操作技巧總結(jié)》及《Python入門與進(jìn)階經(jīng)典教程》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
Windows下安裝python2和python3多版本教程
這篇文章主要介紹下Windows(我用的Win10)環(huán)境下的python2.x 和 python3.x 的安裝,以及python2.x 與 python3.x 共存時(shí)的配置問(wèn)題。2017-03-03python使用Tkinter顯示網(wǎng)絡(luò)圖片的方法
這篇文章主要介紹了python使用Tkinter顯示網(wǎng)絡(luò)圖片的方法,涉及Python操作圖片的相關(guān)技巧,需要的朋友可以參考下2015-04-04python導(dǎo)出requirements.txt的幾種方法以及環(huán)境配置詳細(xì)流程
這篇文章主要給大家介紹了關(guān)于python導(dǎo)出requirements.txt的幾種方法以及環(huán)境配置詳細(xì)流程,requirements.txt 文件是一個(gè)文本文件,用于列出你的Python項(xiàng)目所依賴的軟件包及其版本,需要的朋友可以參考下2023-11-11Python fileinput模塊如何逐行讀取多個(gè)文件
這篇文章主要介紹了Python fileinput模塊如何逐行讀取多個(gè)文件,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-10-10