Python 類中的資料隱藏是如何工作的?


資料隱藏

在 Python 中,我們在屬性名稱之前使用雙下劃線使其無法訪問/私有或隱藏它們。

下面的程式碼展示了變數 __hiddenVar 如何隱藏。

示例

class MyClass:
    __hiddenVar = 0
    def add(self, increment):
       self.__hiddenVar += increment
       print (self.__hiddenVar)
myObject = MyClass()
myObject.add(3)
myObject.add (8)
print (myObject.__hiddenVar)

輸出 

3
Traceback (most recent call last):
11
  File "C:/Users/TutorialsPoint1/~_1.py", line 12, in <module>
    print (myObject.__hiddenVar)
AttributeError: MyClass instance has no attribute '__hiddenVar'

在上面的程式中,我們嘗試使用物件在類之外訪問隱藏變數,並且它丟擲了一個異常。

我們可以使用以下特殊語法訪問隱藏屬性的值 -

示例

class MyClass:
    __hiddenVar = 12
    def add(self, increment):
       self.__hiddenVar += increment
       print (self.__hiddenVar)
myObject = MyClass()
myObject.add(3)
myObject.add (8)
print (myObject._MyClass__hiddenVar)

輸出 

15
23
23

私有方法可以從其類外部訪問,但不像普通情況那樣容易。在 Python 中,沒有任何東西是真正私有的;在內部,私有方法和屬性的名稱會即時混亂和取消混亂,讓它們無法透過給定名稱訪問。

更新於: 15-6-2020

3K+ 次瀏覽

開啟您的職業生涯

透過完成課程,獲得認證

開始學習
廣告
© . All rights reserved.