類的繼承python事例 Python 類的繼承

2021-10-12 10:41:43 字數 1976 閱讀 3902

說明

類的繼承也是乙個非常有用的設計,我們在新定義類時,如果它屬於之前定義過類的一部分,則可以繼承父類的特性。

繼承方法

基本方法如下:

class classname(base1, base2, base3):

pass

括號裡的類名為父類,會繼承父類(支援一到多個)裡的所有屬性和方法。通過繼承建立的新類稱為子類或派生類,被繼承的類稱為基類、父類或超類。

類繼承案例

在之前類的定義中我們定義乙個學生(student)類,我們現在需要乙個大學生的類,它也是學生,可以繼承學生類:

class student(object):

"""這是乙個學生類"""

def __init__(self, name):

self.name = name

def say(self):

print(f'我的名字是:')

def add(self, x, y):

print(f'這個加法我會,等於')

class collegestudent(student):

def practice(self):

print(f'我是, 在世界500強實習。')

我們來例項化使用一下:

lily = collegestudent('lily') # 例項化

lily.say() # student 得到了繼承

# 我的名字是:lily

lily.practice() # 呼叫它自己的方法

# 我是lily, 在世界500強實習。

方法重寫

如果所繼承的父類的方法無法滿足使用,可以進行重寫,這個過程叫方法的覆蓋(override)。如上例中 student 類的 say 方法不能滿足,我們可以重寫:

class collegestudent(student):

def say(self):

我們呼叫時,使用了我們重寫的方法邏輯:

lily.say()

super() 函式

super() 函式是用於呼叫父類(超類)的乙個方法,語法是:super(type[, object-or-type])。super(subclass, self).method() 的意思是,根據 self 去找 subclass 的「父親」,然後呼叫這個「父親」的 method()。經常用在我們在子類中重寫了父類中的方法,但有時候還是需要用父類中的方法。

class student(object):

"""這是乙個學生類"""

def __init__(self, name):

self.name = name

def say(self):

print(f'我的名字是:')

def add(self, x, y):

print(f'這個加法我會,等於')

class collegestudent(student):

def practice(self):

super().say()

super(collegestudent, self).add(1,5)

執行如下:

lily = collegestudent('lily')

lily.practice()

我的名字是:lily

這個加法我會,等於6

如果使用多繼承,會涉及到查詢順序(mro)、重複呼叫(鑽石繼承)等種種問題。mro 就是類的方法解析順序表, 其實也就是繼承父類方法時的順序表。

mro(method resolution order):python 對於每乙個類都有乙個 mro 列表,此表的生成有以下原則:子類永遠在父類之前,如果有多個父類,那麼按照它們在列表中的順序被檢查,如果下乙個類有兩個合法的選擇,那麼就只選擇第乙個。參考

內建方法過載

除了對自己定義的方法進行重寫,還可以對內建方法進行重寫,如 __init__ ( self [,args...] ) 建構函式, 呼叫方法 obj = classname(args)。

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 呼...