Photo by Dayne Topkin on Unsplash 今天要來介紹Python物件導向設計中的 封裝 (Encapsulation) 概念, 主要的目的在保護程式碼中重要的實作細節不被外部知道,以防止外部程式碼直接或不當的存取類別中的屬性 (Attribute) 及方法 (Method) ,而導致程式邏輯上的錯誤。 將複雜的運算邏輯進行封裝 (Encapsulation) 的好處是,外部程式碼只要透過統一介面來進行存取即可,而無需瞭解其中的運算過程,讓程式碼除了保有存取上的控制外,也易於維護。 今天要來說明的 封裝 (Encapsulation) 重點包含了: Python 封裝 (Encapsulation) 私有屬性 (Private Attribute) 私有方法 (Private Method) 一、 Python 封裝 (Encapsulation) 就如同文章開頭所說明的,封裝 (Encapsulation) 的概念就有點像權限控制,有些屬性 (Attribute) 或方法 (Method) 只想於類別內部使用,而不想公開於外部,除了減少程式碼因來源端不適當的使用發生問題外,也可保護其中重要的商業邏輯。 一般情況下,來源端皆可存取類別中公開的屬性 (Attribute) 及方法 (Method) ,如下範例: # 部落格類別 class Blog: # 建構式 def __init__(self): self.author = "Mike" # 作者屬性 self.titles = [] # 文章標題屬性 # 新增文章 def add_post(self, title): self.titles.append(title) blog = Blog() blog.add_post("Python Programming") blog.add_post("Learn How to Code") print("Author: ", blog.author) print("Blog Titles: ", blo...