Python 中的資料隱藏


資料隱藏也稱為資料封裝,它是向用戶隱藏應用程式特定部分實現的過程。資料隱藏結合了類的成員,從而限制了對類成員的直接訪問。

資料隱藏在使應用程式更安全和更健壯方面發揮著重要作用。

Python 中的資料隱藏

Python 中的資料隱藏是一種技術,用於防止在類中初始化的方法和變數被類外部直接訪問。隱藏必要的成員函式可以防止終端使用者檢視程式的實現,從而提高安全性。使用資料隱藏還有助於透過減少相互依賴關係來降低程式的複雜性。

在 Python 中,可以透過將類成員宣告為私有來實現資料隱藏,方法是在成員名稱前加上雙下劃線 (__) 作為字首。

語法

在 Python 中隱藏資料的語法如下:

__variablename

示例 1 - 無類名

在此示例中,資料隱藏是透過將類中的變數宣告為私有來執行的:

class hidden: # declaring private member of class __hiddenVar = 0 def sum(self, counter): self.__hiddenVar += counter print (self.__hiddenVar) hiddenobj = hidden() hiddenobj.sum(5) hiddenobj.sum(10) # print statement throws error as __hiddenVar is private print(hiddenobj.__hiddenVar)

輸出

以上程式碼的輸出如下:

5
15
Traceback (most recent call last):
  File "main.py", line 12, in <module>
    print(hiddenobj.__hiddenVar)
AttributeError: 'hidden' object has no attribute '__hiddenVar'

示例 2 - 有類名

在以下示例中,隱藏的資料可以直接在類外部訪問:

class hidden: # declaring hiddenVar private by using __ __hiddenVar = 0 def sum(self, counter): self.__hiddenVar += counter print (self.__hiddenVar) hiddenobj = hidden() hiddenobj.sum(5) hiddenobj.sum(10) # adding class name before variable to access the variable outside the class print(hiddenobj._hidden__hiddenVar)

輸出

以上程式碼的輸出如下 

5
15
15

示例 3

讓我們再看一個使用類的私有和受保護成員來實現資料隱藏的示例。

class Employee: # Hidden members of the class __password = 'private12345' # Private member _id = '12345' # Protected member def Details(self): print("ID: ",(self._id)) print("Password: ",(self.__password)+"\n") hidden = Employee() hidden.Details() print(hidden._Employee__password)

輸出

以上程式碼的輸出為:

ID: 12345
Password: private12345
private12345

在以上輸出中,Details 函式是 Employee 類的組成部分,因此它可以訪問類的私有和受保護成員。這就是為什麼可以在不使用類名的情況下訪問 id 和 password 的原因。但是,在最後的 print 語句中,需要使用類名來訪問 password,因為私有成員的作用域限制在 Employee 類內部。

資料隱藏的優點

  • 透過封裝重要資料來增強安全性。
  • 透過將類內的物件與無用資料斷開連線,向終端使用者隱藏不相關的資訊。
  • 防止建立指向錯誤資料的連結。

更新於: 2022年8月18日

5K+ 閱讀量

開啟您的 職業生涯

透過完成課程獲得認證

立即開始
廣告