不再迷茫!手把手的Python入門教學-封裝

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

前兩篇講完了 繼承(Inheritance)、多型(Polymorphism)跟 抽象類別(Abstract Class),(忘記的朋友可以回去考古一下喔!)今天講一下「封裝(Encapsulation)」,準備好我們就開始吧!

其他物件導向文章
不再迷茫!手把手的Python入門教學-物件導向初探
不再迷茫!手把手的Python入門教學-繼承
不再迷茫!手把手的Python入門教學-多型、抽象類別

封裝(Encapsulation

用於防止外部程式碼不當存取類別中的屬性(Attribute)及方法(Method),保護資料安全

私有方法

  • _ (單個底線):受保護屬性,代表該屬性不應在類別外部直接存取(但你硬要用,不會有人阻止你)
  • __ (兩個底線):私有屬性,代表該屬性無法在類別外部直接存取

*名稱改寫:Python會自動把私有屬性名稱改寫成 _類別__屬性,所以如果真的要存取,可以這樣偷吃步XD

私有屬性 範例

raw-image

由上述範例可以發現,在第 11 行呼叫類別內的函式是可以成功輸出私有屬性 __age 的,但如果是想要直接在類別外使用就沒辦法,但最後一行把屬性名稱改寫一下就可以了


私有方法

前綴加上 __,只能在類別內部呼叫
*名稱改寫:前面說的偷吃步方法,這裡一樣可以用喔:D

私有方法 範例

raw-image

可以用 get_info() 這個方法來間接呼叫私有方法 __display_info(),前面說的名稱改寫也可以成功


屬性裝飾詞(Property Decorators

一種用方法(Method)包裝屬性讀取與修改的技巧,讓屬性像變數一樣被操作,但其實背後實際執行的是函數邏輯

  • @property:Getter,讓方法變成可讀取屬性
  • @屬性名.setter:Setter,允許重新設定值
  • @屬性名.deleter:Deleter,允許刪除屬性

屬性裝飾詞 範例

raw-image

加上 @property 會讓這個方法名稱變成屬性,差別在於該屬性不是以變數的形式儲存,而是每次呼叫都會重新執行該類別內的函數,如果沒有 Setter 裝飾詞,那就代表該屬性不能被重新設定,同理 Deleter 也是如此

⚠️這邊要注意!使用該類方法的時候要像在用變數一樣的方式操作,不要寫成 emp.full_name(),不需要加小括號喔~


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

留言
avatar-img
留言分享你的想法!
avatar-img
の倉的程式小天地
6會員
32內容數
熱愛做志工的大學生 誤打誤撞跑去讀資管系 既然來到了資管系,那就學習新技能來幫助他人
2025/06/28
今天來講一下「多型(Polymorphism)」跟「抽象類別(Abstract Class)」,這兩個技巧可以讓程式更具擴充性喔!
Thumbnail
2025/06/28
今天來講一下「多型(Polymorphism)」跟「抽象類別(Abstract Class)」,這兩個技巧可以讓程式更具擴充性喔!
Thumbnail
2025/06/27
上一篇淺談完物件導向的概念之後,要來講一下比較進階的用法啦!這次來講一下「繼承(Inheritance)」~ 想一下當不同類別之間重複性很高,每當創建一個類別,就需要重複寫好多一樣的程式碼,此時就能讓子類別直接繼承父類別的所有屬性跟方法(是為了方便維護,決不是懶喔😂
Thumbnail
2025/06/27
上一篇淺談完物件導向的概念之後,要來講一下比較進階的用法啦!這次來講一下「繼承(Inheritance)」~ 想一下當不同類別之間重複性很高,每當創建一個類別,就需要重複寫好多一樣的程式碼,此時就能讓子類別直接繼承父類別的所有屬性跟方法(是為了方便維護,決不是懶喔😂
Thumbnail
2025/06/26
今天終於要開始進入到大家最期待的(其實並沒有)物件導向啦! 本篇作為物件導向系列的第一篇,我們就簡單介紹一下物件導向是什麼?有哪些元素?馬上來一探究竟吧!
Thumbnail
2025/06/26
今天終於要開始進入到大家最期待的(其實並沒有)物件導向啦! 本篇作為物件導向系列的第一篇,我們就簡單介紹一下物件導向是什麼?有哪些元素?馬上來一探究竟吧!
Thumbnail
看更多
你可能也想看
Thumbnail
還在煩惱平凡日常該如何增添一點小驚喜嗎?全家便利商店這次聯手超萌的馬來貘,推出黑白配色的馬來貘雪糕,不僅外觀吸睛,層次豐富的雙層口味更是讓人一口接一口!本文將帶你探索馬來貘雪糕的多種創意吃法,從簡單的豆漿燕麥碗、藍莓果昔,到大人系的奇亞籽布丁下午茶,讓可愛的馬來貘陪你度過每一餐,增添生活中的小確幸!
Thumbnail
還在煩惱平凡日常該如何增添一點小驚喜嗎?全家便利商店這次聯手超萌的馬來貘,推出黑白配色的馬來貘雪糕,不僅外觀吸睛,層次豐富的雙層口味更是讓人一口接一口!本文將帶你探索馬來貘雪糕的多種創意吃法,從簡單的豆漿燕麥碗、藍莓果昔,到大人系的奇亞籽布丁下午茶,讓可愛的馬來貘陪你度過每一餐,增添生活中的小確幸!
Thumbnail
Python的模組和庫是可重用的程式碼塊,可透過import語句引入。特定部分可以透過from和import引入,並可使用as指定別名。第三方模組可透過pip工具安裝並在程式碼中使用。此外,也可以創建自定義模組並在其他Python文件中引用。
Thumbnail
Python的模組和庫是可重用的程式碼塊,可透過import語句引入。特定部分可以透過from和import引入,並可使用as指定別名。第三方模組可透過pip工具安裝並在程式碼中使用。此外,也可以創建自定義模組並在其他Python文件中引用。
Thumbnail
本文介紹了Python中的物件導向程式設計的重要概念,包括類別、繼承、多型、封裝、介面、抽象類別、靜態類別、列舉、委派、Lambda表達式、泛型和反射。每個概念都有對應的程式碼範例來說明其用法和功能。這些概念對於理解和使用Python進行物件導向程式設計至關重要。
Thumbnail
本文介紹了Python中的物件導向程式設計的重要概念,包括類別、繼承、多型、封裝、介面、抽象類別、靜態類別、列舉、委派、Lambda表達式、泛型和反射。每個概念都有對應的程式碼範例來說明其用法和功能。這些概念對於理解和使用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
先前我們談論到靜態方法就像是定義工具箱一樣,那麼抽象方法就像是共用表格的概念,例如註冊帳號時會填寫的一些基本資料,就有包含制式的表格,裡面有需填寫的欄位,例如姓名,性別等。
Thumbnail
先前我們談論到靜態方法就像是定義工具箱一樣,那麼抽象方法就像是共用表格的概念,例如註冊帳號時會填寫的一些基本資料,就有包含制式的表格,裡面有需填寫的欄位,例如姓名,性別等。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News