本章目錄:
一、多态
二、多态性
三、鴨子類型
==============================
一、多态
多态指的是一類事物有多種形态.
動物有多種形态:人,狗,豬.
linux中“一切皆檔案”,檔案具有可寫可讀特性:
二、多态性
1. 什麼是多态動态綁定(在繼承的背景下使用時,有時也稱為多态性)
多态性是指在不考慮執行個體類型的情況下使用執行個體。
多态性分為靜态多态性和動态多态性:
靜态多态性:如任何類型都可以用運算符+進行運算
動态多态性:
2. 為什麼要用多态性(多态性的好處)
其實大家從上面多态性的例子可以看出,我們并沒有增加什麼新的知識,也就是說python本身就是支援多态性的,這麼做的好處是什麼呢?
1.增加了程式的靈活性
以不變應萬變,不論對象千變萬化,使用者都是同一種形式去調用,如func(animal)
2.增加了程式額可擴充性
通過繼承animal類建立了一個新的類,使用者無需更改自己的代碼,還是用func(animal)去調用
三 、鴨子類型
python程式員通常根據這種行為來編寫程式。例如,如果想編寫現有對象的自定義版本,可以繼承該對象
也可以建立一個外觀和行為像,但與它無任何關系的全新對象,後者通常用于儲存程式元件的松耦合度。
例1:利用标準庫中定義的各種‘與檔案類似’的對象,盡管這些對象的工作方式像檔案,但他們沒有繼承内置檔案對象的方法
例2:其實大家一直在享受着多态性帶來的好處,比如Python的序列類型有多種形态:字元串,清單,元組,多态性展現如下