0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Python中的繼承詳解

網(wǎng)絡(luò)技術(shù)干貨圈 ? 來源:網(wǎng)絡(luò)技術(shù)干貨圈 ? 2023-04-20 16:56 ? 次閱讀

Python 中,繼承是一種重要的面向?qū)ο?a target="_blank">編程概念。通過繼承,我們可以定義一個新的類,它繼承了現(xiàn)有類的屬性和方法。這種代碼重用可以使我們更高效地編寫程序,并提高代碼的可讀性和可維護(hù)性。

9ca762fa-df58-11ed-bfe3-dac502259ad0.png

基本語法

在 Python 中,繼承是通過將父類的名稱作為子類的參數(shù)來實(shí)現(xiàn)的。例如,下面的代碼定義了一個名為 Rectangle 的子類,它繼承了 Shape 類的屬性和方法。

classShape:
def\__init\__(self,x,y):
self.x=x
self.y=y

defarea(self):
pass

classRectangle(Shape):
def\__init\__(self,x,y,width,height):
super().\__init\__(x,y)
self.width=width
self.height=height

defarea(self):
returnself.width*self.height

在上面的代碼中,我們定義了一個名為 Shape 的父類,它包含了一個 x 和一個 y 屬性,以及一個名為 area() 的方法。然后,我們定義了一個名為 Rectangle 的子類,它繼承了 Shape 類,并添加了一個 width 和一個 height 屬性,以及一個重寫的 area() 方法。

請注意,我們在子類的 _init_() 方法中使用了 super()._init_(),它調(diào)用了父類的構(gòu)造函數(shù),并將 x 和 y 參數(shù)傳遞給它。這確保了子類在實(shí)例化時也會初始化父類的屬性。

方法重寫

在 Python 中,子類可以重寫父類的方法。這使得子類能夠自定義其行為,并覆蓋繼承自父類的默認(rèn)實(shí)現(xiàn)。

classSquare(Rectangle):
def\__init\__(self,x,y,size):
super().\__init\__(x,y,size,size)

在上面的代碼中,我們定義了一個名為 Square 的子類,它繼承了 Rectangle 類,并重寫了其 _init_() 方法,將 width 和 height 參數(shù)都設(shè)置為 size。這使得 Square 類可以像正方形一樣使用,而不是矩形。

多重繼承

Python 還支持多重繼承,這意味著一個類可以繼承多個父類的屬性和方法。這使得我們可以組合不同類的功能,并將其合并到一個新的類中。

classEmployee:
def\__init\__(self,name,salary):
self.name=name
self.salary=salary

defcalculate_pay(self):
pass

classSalesPerson(Employee):
defcalculate_pay(self):
returnself.salary+self.commission

classManager(Employee):
defcalculate_pay(self):
returnself.salary+self.bonus

classSalesManager(SalesPerson,Manager):
defcalculate_pay(self):
returnsuper().calculate_pay()+self

在上面的代碼中,我們定義了一個名為 Employee 的父類,它包含了一個名為 name 和一個名為 salary 的屬性,以及一個名為 calculate_pay() 的方法。然后,我們定義了兩個子類,SalesPerson 和 Manager,它們分別重寫了父類的 calculate_pay() 方法。

最后,我們定義了一個名為 SalesManager 的子類,它同時繼承了 SalesPerson 和 Manager 類。在這種情況下,當(dāng)我們調(diào)用 calculate_pay() 方法時,Python 將從左到右依次搜索父類,直到找到一個具有相應(yīng)方法的類。在這個例子中,Python 將先搜索 SalesPerson 類,然后是 Manager 類。

請注意,我們使用 super() 函數(shù)來調(diào)用父類的方法。這確保了所有父類的 calculate_pay() 方法都會被調(diào)用,而不是只調(diào)用其中一個。

總結(jié)

繼承是面向?qū)ο缶幊痰闹匾拍钪?,可以幫助我們編寫更高效和可維護(hù)的代碼。在 Python 中,我們可以通過將父類的名稱作為子類的參數(shù)來實(shí)現(xiàn)繼承,并使用方法重寫和多重繼承來定制子類的行為。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 編程
    +關(guān)注

    關(guān)注

    88

    文章

    3544

    瀏覽量

    93470
  • 程序
    +關(guān)注

    關(guān)注

    115

    文章

    3747

    瀏覽量

    80665
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4260

    瀏覽量

    62228
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4697

    瀏覽量

    68083
  • python
    +關(guān)注

    關(guān)注

    54

    文章

    4758

    瀏覽量

    84289

原文標(biāo)題:網(wǎng)絡(luò)工程師學(xué)Python-13-繼承

文章出處:【微信號:網(wǎng)絡(luò)技術(shù)干貨圈,微信公眾號:網(wǎng)絡(luò)技術(shù)干貨圈】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    Python的面向?qū)ο缶幊?b class='flag-5'>詳解

    一般編程可分為面向過程編程,和面向?qū)ο缶幊獭?b class='flag-5'>Python的面向?qū)ο缶幊蹋cJava的面向?qū)ο蠛芟?。之所以需要面向?qū)ο缶幊蹋菫榱烁玫貙?shí)現(xiàn)封裝、繼承、多態(tài)。
    發(fā)表于 09-04 16:35 ?488次閱讀
    <b class='flag-5'>Python</b>的面向?qū)ο缶幊?b class='flag-5'>詳解</b>

    Python多重繼承使用方法

    繼承是面向?qū)ο缶幊痰囊粋€重要方式,通過繼承,子類可以擴(kuò)展父類的功能,Python也具有該特性,除此之外,Python還可以使用多重繼承。語法
    發(fā)表于 04-19 14:41

    3分鐘看懂Python面向?qū)ο?/a>

    個Interface,但最多繼承自一個類)。多重繼承機(jī)制有時很好用,但是它容易讓事情變得復(fù)雜。多態(tài)多態(tài)意味著可以對不同的對象使用同樣的操作,但它們可能會以多種形態(tài)呈現(xiàn)出結(jié)果。在Python
    發(fā)表于 06-08 14:20

    js的寄生繼承詳解

    // 將原型繼承和非原型繼承組合為一體的繼承方式叫做組合繼承,但是這種方法的繼承是有一點(diǎn)小缺陷的,下級函數(shù)
    發(fā)表于 05-31 06:03

    python類的繼承

    python類的繼承類的繼承,跟人類繁衍的關(guān)系相似。被繼承的類稱為基類(也叫做父類),繼承而得的類叫派生類(也叫子類),這種關(guān)系就像人類的父
    發(fā)表于 03-08 16:40

    完全自學(xué)指南Python爬蟲BeautifulSoup詳解

    完全自學(xué)指南Python爬蟲BeautifulSoup詳解
    發(fā)表于 09-07 08:55 ?39次下載
    完全自學(xué)指南<b class='flag-5'>Python</b>爬蟲BeautifulSoup<b class='flag-5'>詳解</b>

    Python開發(fā)技術(shù)詳解》-隨書附帶程序

    Python開發(fā)技術(shù)詳解 周偉,宗杰等編著 機(jī)械工業(yè)出版社 隨書附帶程序
    發(fā)表于 05-09 14:05 ?0次下載

    python經(jīng)典實(shí)例詳解

    python經(jīng)典實(shí)例詳解說明。
    發(fā)表于 04-26 10:14 ?32次下載

    python類的繼承詳解

    python類的繼承 類的繼承,跟人類繁衍的關(guān)系相似。 被繼承的類稱為基類(也叫做父類),繼承而得的類叫派生類(也叫子類),這種關(guān)系就像人類
    的頭像 發(fā)表于 03-08 16:40 ?3044次閱讀

    Python到底是如何實(shí)現(xiàn)繼承的呢

    簡單地說,在python,新建的類可以繼承一個或者多個類。父類又可以稱為基類或者超類,新建的類稱為派生類或者子類。
    的頭像 發(fā)表于 08-18 15:46 ?2287次閱讀
    <b class='flag-5'>Python</b>到底是如何實(shí)現(xiàn)<b class='flag-5'>繼承</b>的呢

    怎樣在Java實(shí)現(xiàn)多繼承

    Java是一種面向?qū)ο蟮闹辉试S單繼承的語言,那么怎樣在Java實(shí)現(xiàn)多繼承呢? 2 方法 1. 多層繼承 如果要直接繼承類,子類
    的頭像 發(fā)表于 02-17 14:55 ?1259次閱讀

    網(wǎng)絡(luò)工程師學(xué)Python-繼承概念介紹

    Python 繼承是一種重要的面向?qū)ο缶幊谈拍?。通過繼承,我們可以定義一個新的類,它繼承了現(xiàn)有類的屬性和方法。
    的頭像 發(fā)表于 04-20 16:56 ?438次閱讀

    [源代碼]Python算法詳解

    [源代碼]Python算法詳解[源代碼]Python算法詳解
    發(fā)表于 06-06 17:50 ?0次下載

    Python繼承的基本規(guī)則

    繼承規(guī)則 與其他基于類的語言一樣,可以通過繼承組合多個類定義。 類定義可以擴(kuò)展(或繼承)多個其他類。這些類又可以擴(kuò)展其他類。 請注意,類不能繼承 P
    的頭像 發(fā)表于 09-20 14:24 ?462次閱讀

    pythonopen函數(shù)的用法詳解

    pythonopen函數(shù)的用法詳解 Python的open()函數(shù)用于打開文件。它接受文件名和模式作為參數(shù),并返回一個文件對象。文件對象
    的頭像 發(fā)表于 01-30 15:31 ?1724次閱讀