python 類的繼承

2022-08-17 22:30:16 字數 2516 閱讀 6356

一、繼承的引入

說到繼承,你一定腦補出了一場偶像劇裡富二代繼承老爹遺產,從此甩開99%同齡人,走上人生巔峰的大戲。「類的繼承」也和這個有點類似,「子類」繼承了「父類」的「財產」。

類的繼承很大程度也是為了避免重複性勞動。比如說當我們要寫乙個新的類,如果新的類有許多**都和舊類相同,又有一部分不同的時候,就可以用「繼承」的方式避免重複寫**。

讓我們看乙個案例:有兩個類,它們有許多**一模一樣,也有一部分**不同。

類一:

類二:

這兩個類中,有三個類方法完全相同,但成績單_新類多了乙個類方法列印總分

繼承的寫法:

class 成績單_舊():

def __init__(self,學生姓名,語文_成績,數學_成績):

self.學生姓名 = 學生姓名

self.語文_成績 = 語文_成績

self.數學_成績 = 數學_成績

def 列印成績單(self):

print(self.學生姓名 + '的成績單如下:')

print('語文成績:'+ str(self.語文_成績))

print('數學成績:'+ str(self.數學_成績))

def 列印平均分(self):

平均分 = (self.語文_成績 + self.數學_成績)/2

print(self.學生姓名 + '的平均分是:' + str(平均分))

class 成績單_新(成績單_舊):

def 列印總分(self):

總分 = self.語文_成績 + self.數學_成績

print(self.學生姓名 + '的總分是:' + str(總分))

例項_舊 = 成績單_舊('王明明',99,88)

例項_舊.列印成績單()

例項_舊.列印平均分()

例項_新 = 成績單_新('王明明',99,88)

例項_新.列印成績單()

例項_新.列印平均分()

例項_新.列印總分()

二、繼承類的相關定義

格式:class 新類(舊類)

在python裡,我們統一把舊的類稱為父類,新寫的類稱為子類子類可以在父類的基礎上改造類方法,所以我們可以說子類繼承了父類

三、繼承例子

四、重寫

子類除了可以定製新的類方法,還能直接覆蓋父類的方法(可模擬富二代男主推翻了老爹管理公司的做派),只要使用相同的類方法名稱就能做到這一點。

例子:

子類中重寫覆蓋任意父類方法,哪怕是初始化函式init。我們再做個重寫初始化函式init的練習:

像這樣,子類從【乙個父類】繼承類方法,我們叫做「單繼承」。還有一種更複雜的繼承情況,叫「多重繼承」。

五、多重繼承

顧名思義,「多重繼承」就是乙個子類從【多個父類】中繼承類方法。格式是class 子類(父類1,父類2,……)

在此,子類超級機械人同時繼承了父類基礎機械人高階機械人中的類方法。

不過,多重繼承有利有弊。過度使用繼承容易把事情搞複雜,就像乙個人有很多爸爸必定會帶來諸多麻煩。

如果不是開發大型專案,不太需要用到太複雜的繼承關係,所以你只需有個印象就好,我們對繼承的講解就講到這裡。

python 類 繼承 python 類的繼承

1 所用的類都可以被繼承 2 沒有繼承其他類的類必然有乙個父類 object 3子類可以擁有父類的 init 裡的類容 派生子類除了父類的一些屬性,還會有自己的屬性和方法,這些就叫派生 如何使用 實現 class animal def init self,name,attack,hp self.na...

Python 類的繼承

有兩個模組 file1.py 和 file2.py file2中有個基類base def abc self return function abc and name self class base object def init self,name self.name name defrun sel...

Python 類的繼承

python中類的繼承,子類擁有繼承父類的方法和屬性,這一點上,與object c中是一樣的,整體上python語法和object c語法很想,但是swift與python這兩者是更像的語法上class parent 定義父類 parentattr 100 def init self print 呼...