python中的鴨子型別

2021-08-19 08:46:56 字數 931 閱讀 3990

什麼是多型

多型,按字面的意思就是「多種狀態」。在物件導向語言中,介面的多種不同的實現方式即為多型。

多型的目的:就是指不同的物件的,同狀態下的,做出的不同表現形式

python中的鴨子型別

python中沒有多型,但是可以用鴨子型別實現多型。

鴨子型別主要原因:python中引數是無型別的

init() 是乙個最典型的鴨子型別 ( 多型)

class

person:

defspeak

(self):

print('說話....')

class

america

(person):

defspeak

(self):

print('美國人說:你好')

class

thai

(person):

defspeak

(self):

print('泰國人說,你好')

class

chinese

(person):

defspeak

(self):

print('中國人說,你好')

defsay

(personobj):

personobj.speak()

xiaoming = chinese()

jack = america()

tai = thai()

say(xiaoming)

say(jack)

say(tai)

執行結果

中國人說,你好

美國人說:你好

泰國人說,你好

python的鴨子型別

這次簡單介紹下 鴨子型別的概念。當看到乙隻鳥走起來像鴨子 游泳起來像鴨子 叫起來也像鴨子,那麼這只鳥就可以被稱為鴨子。鴨子型別關注點在物件的行為,而不是型別。在 python 和 go 中都可以實現鴨子型別。示例 如下 class duck def init self,name self.name ...

Python多型 鴨子型別

多型指的是一類事物有多種形態。動物有多種形態 人,狗,豬 import abcclass animal metaclass abc.abcmeta 同一類事物 動物 abc.abstractmethod deftalk self pass class people animal 動物的形態之一 人 ...

Python列表和鴨子型別

列表可以說是python最重要的資料結構,因為python具有正交性,所以我們可以從list中的特性推測出其他資料結構的基本的特性。python具備了鴨子特性和,讓其語言具有極強的表達性。1 list 函式 list obj 可以把一切序列轉換為list。同時我們可以推測只要是序列,所以obj可以是...