在 Python 中,繼承是一種重要的面向?qū)ο?a target="_blank">編程概念。通過繼承,我們可以定義一個新的類,它繼承了現(xiàn)有類的屬性和方法。這種代碼重用可以使我們更高效地編寫程序,并提高代碼的可讀性和可維護性。
基本語法
在 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)繼承,并使用方法重寫和多重繼承來定制子類的行為。
審核編輯:湯梓紅
-
編程
+關注
關注
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)載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論