python中的多型(polymorphism)指的是僅針對方法,方法靈活性的抽象,主要有兩個層面:引數型別的多型(乙個方法能夠處理多個型別的能力);引數形式的多型(乙個方法能夠接受多個引數的能力)。
python天然支援多型,不需要特殊語法。
1、引數型別的多型,舉個例子,需要方法能夠處理不同引數型別,那麼可以過載乙個python內部可以跟所有型別資料打交道的內部函式。
class
poly
:def
__init__
(self,name)
:self.name = name
def__id__
(self)
:return
(len
(self.name)
)def
lucky
(self,salt)
:# s = id(salt)
s =0
for c in self.name:
s +=
(ord
(c)+
id(salt))%
100return s
dc = poly(
"老王"
)ac = poly(
"老李"
)print
(len
("老王"))
print
(dc.lucky(10)
)print
(dc.lucky(
"10"))
print
(dc.lucky(ac)
)
2、引數形式多型
python天然支援方法/函式多種引數形式
python的函式/方法支援可變引數,支援引數形式的多型性
python的類方法也是函式,函式的各種定義方式均有效
對不同引數個數及預設值的確定,需程式設計師完成
class
poly
:def
__init__
(self,name)
: self.name = name
def__id__
(self)
:return
(len
(self.name)
)def
lucky
(self,salt=
0,more =9)
:# s = id(salt)
s =0for c in self.name:
s +=
(ord
(c)+
id(salt)
+more)
%100
return s
dc = poly(
"老王"
)print
(dc.lucky())
print
(dc.lucky(10)
)print
(dc.lucky(10,
100)
)
python物件導向之多型
多型 以封裝和繼承為前提 不同的子類物件呼叫相同的方法 產生不同的執行結果 class dog object def init self,name self.name name def game self print s 開心的玩耍 self.name class gaifei dog 父類的方法不...
python 物件導向之多型
多型是什麼?用一句話來概括下,多型就是同一操作 方法 作用於不同的物件時,可以有不同的解釋,產生不同的執行結果。usr bin env python coding utf 8 time 2017 12 26 0026 15 18 author ming class person object def...
物件導向之多型
多型即事物存在的多種形態 要有繼承 要有方法重寫 要有父類引用指向子類物件 1,多型中的成員訪問特點之成員變數 編譯看左邊 父類 執行看左邊 父類 2,多型中的成員訪問特點之成員方法 編譯看左邊 父類 執行看右邊 子類 3,多型中的成員訪問特點之靜態成員方法 編譯看左邊 父類 執行看左邊 父類 總結...