python 類的多型與多型性

2022-07-20 01:15:10 字數 2463 閱讀 8075

多型

多型指的是一類事物有多種形態——如:動物有多種形態:人、狗、豬。

多型性

指在不考慮例項型別的情況下使用例項,多型性分為靜態多型性和動態多型性。

靜態多型性——任何型別都可以用運算子【+】進行運算。

eg:字串+字串;數字+數字;列表+列表。我們在使用【+】號時也沒有考慮型別

動態多型性如下:

#

動態多型性

import

abcclass animal(metaclass=abc.abcmeta):

@abc.abstractmethod

defeat(self):

pass

@abc.abstractmethod

defrun(self):

pass

class

dog(animal):

defeat(self):

print('

is eatting')

defrun(self):

print('

is running')

class

pig(animal):

defeat(self):

print('

is eatting')

defrun(self):

print('

is running')

dog1 =dog()

pig1 =pig()

dog1.eat()

pig1.eat()

#dog、pig 都是動物,只要是動物都有eat run方法

#於是我們可以不用考慮它們的具體是什麼型別,而直接使用

#更進一步,我們可以定義乙個統一的介面來使用

deffunc(obj):

obj.eat()

func(dog1)

動態多型性

動態多型性的意思是我們在使用物件的時候不需要考慮類的型別。

多型性的好處:

1、增加程式的靈活性

使用者都是同一種形式去呼叫,如func(obj)

2、增加了程式的額外可擴充套件性

通過animal類建立了乙個新的類,使用者不需要修改自己原有的**,還是用func(obj)去呼叫。

import

abcclass animal(metaclass=abc.abcmeta):

@abc.abstractmethod

defeat(self):

pass

@abc.abstractmethod

defrun(self):

pass

@abc.abstractmethod

deftalk(self):

pass

class

dog(animal):

defeat(self):

print('

is eatting')

defrun(self):

print('

is running')

deftalk(self):

print('

wawa')

class

pig(animal):

defeat(self):

print('

is eatting')

defrun(self):

print('

is running')

deftalk(self):

print('

pipi')

class

cat(animal):

defeat(self):

print('

is eatting')

defrun(self):

print('

is running')

deftalk(self):

print('

maomao')

dog1 =dog()

pig1 =pig()

cat1 =cat()

dog1.eat()

pig1.eat()

cat1.talk()

#dog、pig 都是動物,只要是動物都有eat run方法

#於是我們可以不用考慮它們的具體是什麼型別,而直接使用

#更進一步,我們可以定義乙個統一的介面來使用

deffunc(obj):

obj.eat()

func(cat1)

建立乙個新的了類

鴨子型別

python 崇尚鴨子型別,即『如果看起來像、叫聲像而且走起路來像鴨子,那麼它就是鴨子』

類的多型與多型性

多型是指一類事物有多種形態 class animal def speak self print f 開口說話 動物的形態之一 人 class people animal def speak self print 呵呵呵 動物的形態之二 狗 class duck animal def speak se...

Python 多型與多型性

同一種事務的多種形態 就是多型 車有多種形態,你沒有具體學習某乙個物件,你是學的怎麼開車 這就是多型性 1 增加了程式的靈活性 以不變應萬變,不論物件千變萬化,使用者都是同一種形式去呼叫,如func animal 2 增加了程式可擴充套件性 通過繼承animal類建立了乙個新的類,使用者無需改變自己...

多型與多型性

1.什麼是多型 多型指的是同一種 類事物的不同形態 2.為何要用多型性 1 增加了程式的靈活性 2 增加了程式的可擴張性 多型性 分為靜態多型性和動態多型性 多型性 在多型的背景下,可以在不用考慮物件具體型別的前提下而直接使用物件 多型性的精髓 統一 3.如何用多型 class animal def...