不再迷茫!手把手的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
蝦皮分潤計畫讓我在分享旅遊文章時,也能透過推薦好物累積被動收入,貼補旅行基金。這篇文章,除了介紹計畫的操作亮點與心得,也分享我最常應用的案例:「旅行必備小物 TOP5」,包含行李鎖、免洗內衣褲、分裝瓶、折疊衣架與真空壓縮袋,幫助出國打包更輕鬆。想同時記錄旅行、分享好物又創造額外收入的你,千萬別錯過!
Thumbnail
蝦皮分潤計畫讓我在分享旅遊文章時,也能透過推薦好物累積被動收入,貼補旅行基金。這篇文章,除了介紹計畫的操作亮點與心得,也分享我最常應用的案例:「旅行必備小物 TOP5」,包含行李鎖、免洗內衣褲、分裝瓶、折疊衣架與真空壓縮袋,幫助出國打包更輕鬆。想同時記錄旅行、分享好物又創造額外收入的你,千萬別錯過!
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中是非常重要的一環,因為到了後期,程式會越來越複雜。 而函式可以想成是容易管理的小程式,當我們需要使用時,只需呼叫即可。
Thumbnail
在程式中,了解資料型態是相當重要的。 為什麽? 因為許多error,常常都是因為資料型態不正確所導致的。 舉個例子,在python中: a = 1 + 2 print(a) 結果就是3 a = = "1"+"2" print(a) 結果就是12 是不是差很多? 所以今天我來介
Thumbnail
在程式中,了解資料型態是相當重要的。 為什麽? 因為許多error,常常都是因為資料型態不正確所導致的。 舉個例子,在python中: a = 1 + 2 print(a) 結果就是3 a = = "1"+"2" print(a) 結果就是12 是不是差很多? 所以今天我來介
Thumbnail
本文讓我們來淺談一下類別是什麼? 若想看詳細一點的python官方教學可點此連結 Python 的類別(Class)是一種面向物件導向程式設計的概念,讓你能夠創建具有屬性和方法的物件。類別是對現實世界中事物的抽象,它包含數據和操作這些數據的方法。它非常的抽象,想像一個類別就像是一個蛋糕模具,
Thumbnail
本文讓我們來淺談一下類別是什麼? 若想看詳細一點的python官方教學可點此連結 Python 的類別(Class)是一種面向物件導向程式設計的概念,讓你能夠創建具有屬性和方法的物件。類別是對現實世界中事物的抽象,它包含數據和操作這些數據的方法。它非常的抽象,想像一個類別就像是一個蛋糕模具,
Thumbnail
本文將介紹自定函式及應用,利用程式範例解釋為什麼要用到自定函式 自定函式好處當然就是,讓你的程式碼看起來比較簡潔,在重複使用到的程式碼區塊,可以包裝成函式,讓你重複使用它。
Thumbnail
本文將介紹自定函式及應用,利用程式範例解釋為什麼要用到自定函式 自定函式好處當然就是,讓你的程式碼看起來比較簡潔,在重複使用到的程式碼區塊,可以包裝成函式,讓你重複使用它。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News