python物件導向的三大特性之一多型

2022-01-16 23:05:52 字數 1336 閱讀 7203

多型的特性是呼叫不同的子類將會產生不同的行為,而無需明確知道這個子類實際上是什麼

說白了就是,不同的物件呼叫相同的方法,產生不同的行為

例如:s1是字串型別,w1是列表,兩個完全不同的物件,他們都可以呼叫len方法,而得出的結果不同

多型實際上是依附於繼承的兩種含義:"改變"和"擴充套件"本身就意味著必須有機制去選用你改變/擴充套件過的版本,多型實質上就是繼承的實現細節

子類例項化後呼叫基類的方法,

w1.turn_ice()叫做多型;

class

h20:

def__init__

(self,name,temerature):

self.name =name

self.temerature =temerature

defturn_ice(self):

if self.temerature <0:

print("

[%s]溫度太低結冰了

"%self.name)

elif self.temerature > 0 and self.temerature < 100:

print("

[%s]液化成水

" %self.name)

elif self.temerature > 100:

print("

[%s]溫度太高變成水蒸氣

" %self.name)

class

water(h20):

pass

class

ice(h20):

pass

class

steam(h20):

pass

w1 = water("

水",25)

i1 = ice("

冰",-20)

s1 = steam("

水蒸氣",3000)

w1.turn_ice()

#執行過程中不同的物件呼叫相同的方法

i1.turn_ice()

s1.turn_ice()

#或者定義乙個介面來執行上面的呼叫

deffunc(obj):

obj.turn_ice()

func(w1)

func(i1)

func(s1)

python物件導向三大特性

定義 封裝一些資料和方法,只給外界提供必要的功能,掩蓋細節,提高 復用性和系統安全性。資料角度 用乙個類包裝多個變數,還可以定義方法,運算元據 行為角度 不同程式設計師開發乙個專案的不同功能,在使用時,直接呼叫,不需要思考其內部實現 設計角度 1 分而治之 拿到需求之後,分析需求,將需求拆解為不同的...

Python 物件導向三大特性 封裝

封裝,顧名思義就是將內容封裝到某個地方,以後再去呼叫被封裝在某處的內容。封裝重點 1.def init self 構造方法 雖然它是函式形式,但在類中就不叫函式了 叫方法 2.value 私有 隱藏 屬性,只能在類中被呼叫。3.def func self 私有 隱藏 方法,只能在類中被呼叫。示例1 ...

python 物件導向三大特性 繼承

一 什麼是繼承 繼承是一種建立新類的方式,在python中,新建的類可以繼承乙個或者多個父類,父類又可以稱為基類活超類,新建的類稱為派生類或子類。簡單來說就是 子類可以繼承父類的方法和屬性。python中類的繼承分為 單繼承和多繼承 class parentclass1 定義父類 pass clas...