天天看點

Python入門之面向對象的多态

本章目錄:

    一、多态

    二、多态性

    三、鴨子類型

==============================

一、多态

  多态指的是一類事物有多種形态.

  動物有多種形态:人,狗,豬.

  linux中“一切皆檔案”,檔案具有可寫可讀特性:

 

二、多态性

  1. 什麼是多态動态綁定(在繼承的背景下使用時,有時也稱為多态性)

    多态性是指在不考慮執行個體類型的情況下使用執行個體。

  多态性分為靜态多态性和動态多态性:

    靜态多态性:如任何類型都可以用運算符+進行運算

    動态多态性:

  2. 為什麼要用多态性(多态性的好處)

    其實大家從上面多态性的例子可以看出,我們并沒有增加什麼新的知識,也就是說python本身就是支援多态性的,這麼做的好處是什麼呢?

    

    1.增加了程式的靈活性

      以不變應萬變,不論對象千變萬化,使用者都是同一種形式去調用,如func(animal)

    2.增加了程式額可擴充性

      通過繼承animal類建立了一個新的類,使用者無需更改自己的代碼,還是用func(animal)去調用 

三 、鴨子類型

python程式員通常根據這種行為來編寫程式。例如,如果想編寫現有對象的自定義版本,可以繼承該對象

也可以建立一個外觀和行為像,但與它無任何關系的全新對象,後者通常用于儲存程式元件的松耦合度。

例1:利用标準庫中定義的各種‘與檔案類似’的對象,盡管這些對象的工作方式像檔案,但他們沒有繼承内置檔案對象的方法

例2:其實大家一直在享受着多态性帶來的好處,比如Python的序列類型有多種形态:字元串,清單,元組,多态性展現如下