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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

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

Python中的繼承詳解

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

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

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

基本語法

在 Python 中,繼承是通過將父類的名稱作為子類的參數(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ù)傳遞給它。這確保了子類在實例化時也會初始化父類的屬性。

方法重寫

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

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

在上面的代碼中,我們定義了一個名為 Square 的子類,它繼承了 Rectangle 類,并重寫了其 _init_() 方法,將 width 和 height 參數(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 類。在這種情況下,當我們調(diào)用 calculate_pay() 方法時,Python 將從左到右依次搜索父類,直到找到一個具有相應方法的類。在這個例子中,Python 將先搜索 SalesPerson 類,然后是 Manager 類。

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

總結(jié)

繼承是面向?qū)ο缶幊痰闹匾拍钪唬梢詭椭覀兙帉懜咝Ш涂删S護的代碼。在 Python 中,我們可以通過將父類的名稱作為子類的參數(shù)來實現(xiàn)繼承,并使用方法重寫和多重繼承來定制子類的行為。

審核編輯:湯梓紅

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

    關注

    88

    文章

    3565

    瀏覽量

    93536
  • 程序
    +關注

    關注

    116

    文章

    3756

    瀏覽量

    80751
  • 函數(shù)
    +關注

    關注

    3

    文章

    4277

    瀏覽量

    62323
  • 代碼
    +關注

    關注

    30

    文章

    4722

    瀏覽量

    68231
  • python
    +關注

    關注

    55

    文章

    4767

    瀏覽量

    84375

原文標題:網(wǎng)絡工程師學Python-13-繼承

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

收藏 人收藏

    評論

    相關推薦

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

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

    Python多重繼承使用方法

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

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

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

    js的寄生繼承詳解

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

    python類的繼承

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

    完全自學指南Python爬蟲BeautifulSoup詳解

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

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

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

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

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

    python類的繼承詳解

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

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

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

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

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

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

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

    [源代碼]Python算法詳解

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

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

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

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

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