Python中的數據隱藏:什麼是,優點和缺點[帶有編碼示例]

已發表: 2021-02-05

目錄

什麼是數據隱藏?

它是一種在面向對象編程 (OOP) 中用於隱藏的方法,目的是在計算機代碼中隱藏信息/數據。 內部對象詳細信息(例如數據成員)隱藏在類中。 它保證對類成員的數據訪問受限,同時保持對象完整性。 數據隱藏包括將數據和函數組合成一個單元以通過限制從類外部對數據的直接訪問來隱藏類內的數據的過程。 如果您是數據科學的初學者並想獲得專業知識,請查看我們來自頂尖大學的數據科學課程。

數據隱藏通過避免程序中其他類的不必要進入,幫助計算機程序員創建具有獨特數據集和函數的類。 作為 OOP 中的一種軟件開發技術,它確保獨占數據訪問並防止數據中有意或無意的更改。 軟件組件中這些有限的相互依賴性有助於降低系統複雜性並提高程序的健壯性。

數據隱藏也稱為信息隱藏或數據封裝。 數據封裝是為了向用戶隱藏應用程序實現細節。 由於兩者背後的意圖相同,因此封裝也稱為數據隱藏。 當一個數據成員在類中被提及為私有時,它只能在同一個類中訪問,而在該類之外不可訪問。

Python中的數據隱藏

Python 正在成為一種流行的編程語言,因為它適用於所有領域並且具有簡單的程序實現工具和庫。 Python 文檔將數據隱藏定義為將客戶端與程序實現的一部分隔離開來。 模塊中的一些對像是內部的、不可見的,並且用戶無法訪問。

程序中的模塊足夠開放,可以理解如何使用應用程序,但用戶無法知道應用程序是如何工作的。 因此,數據隱藏提供了安全性,同時避免了依賴性。 Python 中的數據隱藏是防止訪問應用程序中特定用戶的方法。

Python 中的數據隱藏是通過在屬性名稱(前綴)之前使用雙下劃線來完成的。 這使屬性私有/不可訪問,並對用戶隱藏它們。 Python 沒有真正意義上的秘密。 儘管如此,私有方法和屬性的名稱在內部還是在運行中被修改和取消修改,使得它們無法通過它們的給定名稱訪問。

Python 中的數據隱藏示例

#!/usr/bin/python

JustCounter

__secretCount = 0

默認計數自我):

自我 __secretCount += 1

打印自我 __secretCount

計數器= JustCounter ()

計數器 ()

計數器 ()

打印計數器 __secretCount

輸出

1

2

回溯(最近一次通話最後):

<module> 中的文件“test.py”,第 12 行

打印計數器.__secretCount

AttributeError:JustCounter 實例沒有屬性“__secretCount”

Python 在內部更改 object._className__attrName 訪問的類中成員的名稱。

如果最後一行更改為:

…………………………

打印計數器._JustCounter__secretCount

然後它工作,輸出是:

1

2

2

數據隱藏的優勢

  • 類中的對象與不相關的數據斷開連接。
  • 它提高了針對無法訪問機密數據的黑客的安全性。
  • 它可以防止程序員意外鏈接到不正確的數據。 如果程序員在代碼中鏈接這些數據,它只會通過指出錯誤更正來返回錯誤。
  • 它將對象隔離為 OOP 的基本概念。
  • 通過對公眾隱藏易失性數據,它有助於防止損壞數據

數據隱藏的缺點

  • 它有時可能會迫使程序員使用額外的編碼。
  • 可見和不可見數據之間的鏈接使對象工作得更快,但數據隱藏阻止了這種鏈接。
  • 數據隱藏會使程序員更難,並且需要編寫冗長的代碼來在隱藏的數據中創建效果。

因此,當涉及到應用程序中特定信息的隱私和安全性時,數據隱藏在 Python 中很有幫助。 它增加了程序員的工作量,同時鏈接代碼中的隱藏數據。 但是,它提供的優勢確實是不可避免的。

另請閱讀: Python 面試問答

結論

要免費加入我們的 Python 在線課程,您只需按照以下步驟操作:

  • 前往我們的 upStart 頁面
  • 選擇“Python for Data Science”課程
  • 點擊註冊
  • 完成註冊過程

而已。 您可以通過我們新推出的 upStart 計劃免費在線學習 Python,並開始您的數據科學之旅。 你只需要在幾週內每天投入 30 分鐘。 該計劃不需要金錢投資。

立即註冊並開始使用。

如果您對此主題有任何問題或建議,請在下面的評論中告訴我們。 我們很樂意聽取您的意見。

如果您想了解數據科學,請查看 IIIT-B 和 upGrad 的數據科學執行 PG 計劃,該計劃是為在職專業人士創建的,提供 10 多個案例研究和項目、實用的實踐研討會、行業專家的指導、1與行業導師一對一,400 多個小時的學習和頂級公司的工作協助。

Python 中隱藏的數據是什麼?

數據隱藏是面向對象編程的核心概念之一,它限制了外界對數據的訪問。 在“私人”訪問說明符的幫助下,諸如數據成員之類的細節被隱藏起來。 請考慮以下示例以更好地理解。
假設我們有一個名為 myClass 的類和一個名為 __privateCounter 的私有成員。 在這個類中,我們有一個名為 myFunc 的函數,它將 __privateCounter 的值加 1 並打印出來。 在類之外,我們創建了該類的一個對象並使用該對象調用 myFunc。 現在,如果我們嘗試使用這個對像打印 __privateCounter,它會拋出一個錯誤。
在上面的例子中,“__privateCounter”默認是“myClass”類的私有成員。 由於我們已經對其進行了數據隱藏,因此無法在聲明它的類之外訪問它。 要訪問私有成員,我們必須定義一個成員函數,在本例中為“myFunc”。

數據隱藏的優點和缺點是什麼?

雖然數據隱藏是 OOP 的核心概念,有很多優點,但也有一些缺點。 以下是 Python 中數據隱藏的一些最顯著的優點和缺點:
優點
1. 將易失性數據聲明為私有,有助於防止濫用和操縱易失性數據。
2.類的數據成員與無關數據脫鏈。
3、將對象隔離為OOP的基本概念。
缺點
1. 程序員經常被迫編寫冗長的代碼以保護易失性數據免受客戶端的影響。
2. 對象工作相對較慢,因為可見數據和不可見數據之間的鏈接使其工作得很快,而數據隱藏阻止了這種鏈接。

數據隱藏與數據抽像有何不同?

數據隱藏支持限制數據的想法,使其無法被外界訪問或修改。 例如,員工的工資詳細信息對其他員工是隱藏的。 在 Python 中,這是通過使用“私有訪問修飾符”來實現的。
數據抽像是指隱藏內部實現,只向外界展示特徵的思想。 例如,在計算器中,您只會看到計算器執行的操作。 但是,您看不到這些操作的內部工作。 在 Python 中,使用不同的訪問說明符來實現這一點。