本博文源於python基礎,旨在對鴨子類型進行簡單的模擬。
鴨子類型
所謂的鴨子類型就是根據對象的當前方法和屬性集合決定,而不是根據繼承自特定的類與接口設定。 在實際的程序設計中,通常不測試方法和函數中參數的類型,而是依賴文檔、清晰的代碼和測試來確保正確使用。
例子:模擬鴨子類型,實現對象的多態
實例模擬了鴨子、貓和樹。因爲樹木沒有這種叫的方法,因此它就會報錯。
實驗效果
實驗代碼
class Duck(object):
def __init__(self, name='duck'):
self.name = name
def quack(self):
print('嘎嘎嘎....')
class Cat(object):
def __init__(self, name='cat'):
self.name = name
def quack(self):
print('喵喵喵....')
class Tree(object):
def __init__(self, name='tree'):
self.name = name
def duck_demo(obj):
obj.quack()
if __name__ == '__main__':
duck = Duck()
cat = Cat()
tree = Tree()
duck_demo(duck)
duck_demo(cat)
duck_demo(tree)