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

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

3天內不再提示

Python中的繼承詳解

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

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

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

基本語法

在 Python 中,繼承是通過將父類的名稱作為子類的參數來實現(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_(),它調用了父類的構造函數,并將 x 和 y 參數傳遞給它。這確保了子類在實例化時也會初始化父類的屬性。

方法重寫

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

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

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

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

總結

繼承是面向對象編程的重要概念之一,可以幫助我們編寫更高效和可維護的代碼。在 Python 中,我們可以通過將父類的名稱作為子類的參數來實現(xiàn)繼承,并使用方法重寫和多重繼承來定制子類的行為。

審核編輯:湯梓紅

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

    關注

    88

    文章

    3616

    瀏覽量

    93763
  • 程序
    +關注

    關注

    117

    文章

    3787

    瀏覽量

    81074
  • 函數
    +關注

    關注

    3

    文章

    4332

    瀏覽量

    62666
  • 代碼
    +關注

    關注

    30

    文章

    4790

    瀏覽量

    68654
  • python
    +關注

    關注

    56

    文章

    4797

    瀏覽量

    84727

原文標題:網絡工程師學Python-13-繼承

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

收藏 人收藏

    評論

    相關推薦

    Python的面向對象編程詳解

    一般編程可分為面向過程編程,和面向對象編程。Python的面向對象編程,與Java的面向對象很像。之所以需要面向對象編程,是為了更好地實現(xiàn)封裝、繼承、多態(tài)。
    發(fā)表于 09-04 16:35 ?571次閱讀
    <b class='flag-5'>Python</b>的面向對象編程<b class='flag-5'>詳解</b>

    Python多重繼承使用方法

    繼承是面向對象編程的一個重要方式,通過繼承,子類可以擴展父類的功能,Python也具有該特性,除此之外,Python還可以使用多重繼承。語法
    發(fā)表于 04-19 14:41

    3分鐘看懂Python面向對象

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

    js的寄生繼承詳解

    // 將原型繼承和非原型繼承組合為一體的繼承方式叫做組合繼承,但是這種方法的繼承是有一點小缺陷的,下級函數
    發(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經典實例詳解

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

    python類的繼承詳解

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

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

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

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

    Java是一種面向對象的只允許單繼承的語言,那么怎樣在Java實現(xiàn)多繼承呢? 2 方法 1. 多層繼承 如果要直接繼承類,子類
    的頭像 發(fā)表于 02-17 14:55 ?1334次閱讀

    網絡工程師學Python-繼承概念介紹

    Python ,繼承是一種重要的面向對象編程概念。通過繼承,我們可以定義一個新的類,它繼承了現(xiàn)有類的屬性和方法。
    的頭像 發(fā)表于 04-20 16:56 ?490次閱讀

    [源代碼]Python算法詳解

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

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

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

    pythonopen函數的用法詳解

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