Duck Typing 鸭子类型
Python界有这么一句话:
“只要你走路像鸭子,叫起来像鸭子,我就把你当成鸭子。
这就是传说中的鸭子类型,用来形容Python对待类型的一种态度。它有别于Java等强类型语言。
Java对待类型的态度是:
“你必须是真正的鸭子(或者继承自鸭子),否则就算你走路像鸭子,叫起来像鸭子也不行。
来,上代码!
这是鸭子类,它有两个关键方法:鸭子叫,鸭子步。
class Duck:
def duck_walk(self):
print('走🦆步')
def duck_sound(self):
print('嘎嘎嘎')
这是全聚德,一个对鸭子来说很可怕的地方,它有一个静态方法cook用来招待送来的鸭子:
# 全聚德
class QuanJude:
@staticmethod
def cook(duck):
print("-- 鸭子来了,先检查一下 ---")
# 走走看
duck.duck_walk()
# 叫两声听听
duck.duck_sound