Python编程基础:第四十九节 鸭子类型Duck Typing
第四十九節(jié) 鴨子類型Duck Typing
- 前言
- 實(shí)踐
前言
本節(jié)我們一起學(xué)習(xí)一個(gè)非常有趣的知識(shí)點(diǎn):鴨子類型。有這么一句話:If it walks like a duck, and it quacks like a duck, then it must be a duck. 也就是說(shuō)如果一個(gè)動(dòng)物它走路像鴨子,叫起來(lái)也像鴨子,那它就是一只鴨子。這個(gè)邏輯怎么遷移到Python編程中呢?那就是任何對(duì)象(class),只要它們都擁有相同的方法(function),我們就可以把它們當(dāng)作同樣的方法去使用。
實(shí)踐
我們這里先定義一個(gè)名為Duck的類,他有兩個(gè)方法,分別是walk和sleep:
class Duck:def walk(self):print("The duck is walking")def sleep(self):print("The duck is sleeping")然后我們定義一個(gè)名為T(mén)iger的類,他也有兩個(gè)方法,分別是walk和sleep:
class Tiger:def walk(self):print("The tiger is walking")def sleep(self):print("The tiger is sleeping")最后,我們定義一個(gè)名為People的類,他仍然有兩個(gè)方法,分別是walk和sleep:
class People:def walk(self):print("The person is walking")def sleep(self):print("The person is sleeping")可見(jiàn),以上三個(gè)類均擁有相同名稱的方法,只是具體實(shí)現(xiàn)不同,這符合鴨子類型的定義,我們先來(lái)將它們實(shí)例化:
duck = Duck() tiger = Tiger() people = People()然后我們定義一個(gè)函數(shù)來(lái)調(diào)用這些類中的方法:
def do_something(object_):object_.walk()object_.sleep()這里的do_something函數(shù)首先會(huì)調(diào)用對(duì)象的walk()方法,然后調(diào)用對(duì)象的sleep()方法。
我們將object_分別賦值為不同的對(duì)象來(lái)觀察實(shí)驗(yàn)結(jié)果:
可見(jiàn)依次調(diào)用了duck、tiger、people的walk、sleep方法。
以上便是鴨子類型的全部?jī)?nèi)容,感謝大家的收藏、點(diǎn)贊、評(píng)論。我們下一節(jié)將介紹海象運(yùn)算符(Walrus Operator),敬請(qǐng)期待~
總結(jié)
以上是生活随笔為你收集整理的Python编程基础:第四十九节 鸭子类型Duck Typing的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Python编程基础:第四十八节 对象作
- 下一篇: Python编程基础:第五十节 海象运算