資料隱藏在 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 中,沒有什麼是真正私有的;私有方法和屬性的名稱會在執行時被破壞和復原,以使其無法透過給定名稱來訪問它們。
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP