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