關於python類的多型 舉例理解

2021-10-08 23:56:04 字數 1008 閱讀 2348

類的多型特性,要滿足以下 2 個前提條件:繼承:多型一定是發生在子類和父類之間;重寫:子類重寫了父類的方法。

class

whosay

:def

say(self,who)

: who.say(

)class

clanguage

:def

say(self)

:print

("呼叫的是 clanguage 類的say方法"

)class

cpython

(clanguage)

:def

say(self)

:print

("呼叫的是 cpython 類的say方法"

)class

clinux

(clanguage)

:def

say(self)

:print

("呼叫的是 clinux 類的say方法"

)a = whosay(

)#呼叫 clanguage 類的 say() 方法

a.say(clanguage())

#呼叫 cpython 類的 say() 方法

a.say(cpython())

#呼叫 clinux 類的 say() 方法

a.say(clinux(

))

程式執行結果為:

呼叫的是 clanguage 類的say方法

呼叫的是 cpython 類的say方法

呼叫的是 clinux 類的say方法

此程式中,通過給 whosay 類中的 say() 函式新增乙個 who 引數,其內部利用傳入的 who 呼叫 say() 方法。這意味著,當呼叫

whosay 類中的 say() 方法時,我們傳給 who 引數的是哪個類的例項物件,它就會呼叫那個類中的 say() 方法,同乙個say函式,傳入不同的物件會呼叫不同的函式,返回不同的值。

Python 類的多型

python的多型 class dog defeat self print i am dog eat something class cat defeat self print i am cat eat somthing 多型的呼叫形式 defanimal eat one one.eat d dog...

python 類的多型與多型性

多型 多型指的是一類事物有多種形態 如 動物有多種形態 人 狗 豬。多型性 指在不考慮例項型別的情況下使用例項,多型性分為靜態多型性和動態多型性。靜態多型性 任何型別都可以用運算子 進行運算。eg 字串 字串 數字 數字 列表 列表。我們在使用 號時也沒有考慮型別 動態多型性如下 動態多型性 imp...

python 中繼承list類舉例

本例 為 headfirst python,稍作改動。不愧為深入淺出,很棒的例子。畢竟經過了一點改動,我就厚顏無恥地把標題定為原創了。定義乙個類,繼承list的屬性和方法。假設田徑隊100公尺訓練後,我們需要儲存一組資料來記錄各個運動員的成績,分別要儲存運動員的 姓名,出生日期和每次100公尺的成績...