不再迷茫!手把手的Python入門教學-多型、抽象類別

更新 發佈閱讀 2 分鐘
用最直白的語言解釋最複雜的概念,一系列教學​讓你在短時間內掌握 Python

今天來講一下「多型(Polymorphism)」跟「抽象類別(Abstract Class)」,有延伸到上一篇《繼承》談過的東西喔!已經忘記的話快去複習一下吧~
不再迷茫!手把手的Python入門教學-繼承

多型(Polymorphism

同一個名稱的方法(Method)在不同類別內有不同功能
上一篇《繼承》提過的「覆寫」就是多型的其中一個表現

多型 範例

多型 範例

可以發現一樣都是從 Animal 繼承而來的方法 speak,實際輸出卻不相同,因位子類別各自覆寫了一個新的 speak 方法


抽象方法(Abstract Method

只能被用來繼承的方法
含有抽象方法的類別即為抽象類別(Abstract Class),無法建立物件

步驟:

  1. 導入 abc 模組
  2. 抽象類別需繼承 ABC 類別
  3. 在抽象方法上方加上 @abstractmethod 裝飾詞*底下有關於裝飾詞的補充
抽象方法 範例

抽象方法 範例

由上面範例可以發現,即使在父類別 Animal 中的抽象方法 speak 有回傳值,但子類別 Dog 仍無法直接 pass,因為抽象方法不能完全被繼承,若子類別沒有覆寫 speak 就會出現 TypeError: Can't instantiate abstract class Dog with abstract method speak (如下圖)

抽象方法 TypeError

抽象方法 TypeError


補充:裝飾詞(Decorator

用來「包裝函式」,不修改原本代碼的前提下添加額外功能
語法:在函式定義前加上 @function_name

裝飾詞 範例

裝飾詞 範例

可以發現透過在函式前加上裝飾詞 @decorate,讓函式 tree() 加上了 decorate() 的功能


喜歡別忘了給我個讚或按下追蹤喔😊

留言
avatar-img
留言分享你的想法!
avatar-img
の倉的程式小天地
6會員
32內容數
熱愛做志工的大學生 誤打誤撞跑去讀資管系 既然來到了資管系,那就學習新技能來幫助他人
2025/06/27
上一篇淺談完物件導向的概念之後,要來講一下比較進階的用法啦!這次來講一下「繼承(Inheritance)」~ 想一下當不同類別之間重複性很高,每當創建一個類別,就需要重複寫好多一樣的程式碼,此時就能讓子類別直接繼承父類別的所有屬性跟方法(是為了方便維護,決不是懶喔😂
Thumbnail
2025/06/27
上一篇淺談完物件導向的概念之後,要來講一下比較進階的用法啦!這次來講一下「繼承(Inheritance)」~ 想一下當不同類別之間重複性很高,每當創建一個類別,就需要重複寫好多一樣的程式碼,此時就能讓子類別直接繼承父類別的所有屬性跟方法(是為了方便維護,決不是懶喔😂
Thumbnail
2025/06/26
今天終於要開始進入到大家最期待的(其實並沒有)物件導向啦! 本篇作為物件導向系列的第一篇,我們就簡單介紹一下物件導向是什麼?有哪些元素?馬上來一探究竟吧!
Thumbnail
2025/06/26
今天終於要開始進入到大家最期待的(其實並沒有)物件導向啦! 本篇作為物件導向系列的第一篇,我們就簡單介紹一下物件導向是什麼?有哪些元素?馬上來一探究竟吧!
Thumbnail
2025/06/26
有差嗎?不就是資料的擺放方式不一樣而已…針對不同的問題,使用不同的資料結構,在程式運行的效率上會有顯著的影響~今天就來談談:堆疊、隊列、鏈結串列!
Thumbnail
2025/06/26
有差嗎?不就是資料的擺放方式不一樣而已…針對不同的問題,使用不同的資料結構,在程式運行的效率上會有顯著的影響~今天就來談談:堆疊、隊列、鏈結串列!
Thumbnail
看更多
你可能也想看
Thumbnail
還在煩惱平凡日常該如何增添一點小驚喜嗎?全家便利商店這次聯手超萌的馬來貘,推出黑白配色的馬來貘雪糕,不僅外觀吸睛,層次豐富的雙層口味更是讓人一口接一口!本文將帶你探索馬來貘雪糕的多種創意吃法,從簡單的豆漿燕麥碗、藍莓果昔,到大人系的奇亞籽布丁下午茶,讓可愛的馬來貘陪你度過每一餐,增添生活中的小確幸!
Thumbnail
還在煩惱平凡日常該如何增添一點小驚喜嗎?全家便利商店這次聯手超萌的馬來貘,推出黑白配色的馬來貘雪糕,不僅外觀吸睛,層次豐富的雙層口味更是讓人一口接一口!本文將帶你探索馬來貘雪糕的多種創意吃法,從簡單的豆漿燕麥碗、藍莓果昔,到大人系的奇亞籽布丁下午茶,讓可愛的馬來貘陪你度過每一餐,增添生活中的小確幸!
Thumbnail
在 Python 中,print( ) 函數用於將結果輸出到螢幕上。當你嘗試將不同資料型別(例如字串和數字)混合在一起輸出時,print( )函數無法直接處理這些不同型別的資料,因此你需要先將它們轉換為相同的資料型別。通常,這意味著需要將數字轉換為字串型別,以便與其他字串一同輸出。 雖然我們也可以
Thumbnail
在 Python 中,print( ) 函數用於將結果輸出到螢幕上。當你嘗試將不同資料型別(例如字串和數字)混合在一起輸出時,print( )函數無法直接處理這些不同型別的資料,因此你需要先將它們轉換為相同的資料型別。通常,這意味著需要將數字轉換為字串型別,以便與其他字串一同輸出。 雖然我們也可以
Thumbnail
本文介紹了Python中的物件導向程式設計的重要概念,包括類別、繼承、多型、封裝、介面、抽象類別、靜態類別、列舉、委派、Lambda表達式、泛型和反射。每個概念都有對應的程式碼範例來說明其用法和功能。這些概念對於理解和使用Python進行物件導向程式設計至關重要。
Thumbnail
本文介紹了Python中的物件導向程式設計的重要概念,包括類別、繼承、多型、封裝、介面、抽象類別、靜態類別、列舉、委派、Lambda表達式、泛型和反射。每個概念都有對應的程式碼範例來說明其用法和功能。這些概念對於理解和使用Python進行物件導向程式設計至關重要。
Thumbnail
本文詳細介紹了Python中的各種資料型別,包括整數、字串、清單、元組、集合和字典,並提供了相關的操作範例。此外,還解釋了如何在Python中定義和操作變數,包括如何同時對多個變數進行賦值。
Thumbnail
本文詳細介紹了Python中的各種資料型別,包括整數、字串、清單、元組、集合和字典,並提供了相關的操作範例。此外,還解釋了如何在Python中定義和操作變數,包括如何同時對多個變數進行賦值。
Thumbnail
Python語法包括條件語句、迴圈、函數和變數的使用。條件語句如if、elif和else用於進行條件判斷,for和while是兩種主要的迴圈,def用於定義函數。變數可以被賦予數字或字符串,並可使用類型提示來指定變數的類型。註解可以是單行或多行,並可用於解釋函數或類的用途和作用。
Thumbnail
Python語法包括條件語句、迴圈、函數和變數的使用。條件語句如if、elif和else用於進行條件判斷,for和while是兩種主要的迴圈,def用於定義函數。變數可以被賦予數字或字符串,並可使用類型提示來指定變數的類型。註解可以是單行或多行,並可用於解釋函數或類的用途和作用。
Thumbnail
Python是一種易學且功能強大的程式語言,具有直譯、動態語法等特性,並擁有豐富的標準庫。它在各領域如Web開發、數據科學和人工智慧等得到廣泛應用,並被許多大公司如Google和Facebook等使用。Python還有強大的框架、豐富的交互機能、和龐大的社區。
Thumbnail
Python是一種易學且功能強大的程式語言,具有直譯、動態語法等特性,並擁有豐富的標準庫。它在各領域如Web開發、數據科學和人工智慧等得到廣泛應用,並被許多大公司如Google和Facebook等使用。Python還有強大的框架、豐富的交互機能、和龐大的社區。
Thumbnail
今天來介紹python的函式 函式在python中是非常重要的一環,因為到了後期,程式會越來越複雜。 而函式可以想成是容易管理的小程式,當我們需要使用時,只需呼叫即可。
Thumbnail
今天來介紹python的函式 函式在python中是非常重要的一環,因為到了後期,程式會越來越複雜。 而函式可以想成是容易管理的小程式,當我們需要使用時,只需呼叫即可。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News