📜  Python的数据隐藏

📅  最后修改于: 2022-05-13 01:54:35.681000             🧑  作者: Mango

Python的数据隐藏

在这篇文章中,我们将在Python讨论数据隐藏,从数据遮盖力一般以数据隐藏在Python,有优点和使用Python中数据隐藏的缺点一起出发。

什么是数据隐藏?

数据隐藏是强调对用户隐藏数据或信息的概念。它是面向对象编程策略的关键方面之一。它包括对象详细信息,例如数据成员、内部工作。数据隐藏排除了对类成员的完整数据输入,并通过防止意外更改来保护对象完整性。数据隐藏还通过限制软件需求之间的相互依赖性来最小化系统复杂性以提高稳健性。数据隐藏也称为信息隐藏。在类中,如果我们将数据成员声明为私有的,这样其他类就不能访问这些数据成员,那么就是一个隐藏数据的过程。

Python的数据隐藏:

Python文档介绍了数据隐藏,将用户与程序实现的一部分隔离开来。模块中的某些对象保持在内部,用户不可见且无法访问。程序中的模块很容易理解如何使用应用程序,但客户端无法知道应用程序如何运行。因此,数据隐藏赋予安全性,同时丢弃依赖性。 Python中的数据隐藏是一种保护对应用程序中特定用户的访问的技术。 Python应用于各个技术领域,并具有用户友好的语法和庞大的库。 Python的数据隐藏是在 done 前缀之前使用 __ 双下划线执行的。这使得类成员成为非公开的并且与其他类隔离。

例子:



Python3
class Solution:
    __privateCounter = 0
  
    def sum(self):
        self.__privateCounter += 1
        print(self.__privateCounter)
  
  
count = Solution()
count.sum()
count.sum()
  
# Here it will show error because it unable
# to access private member
print(count.__privateCount)


Python3
class Solution:
    __privateCounter = 0
  
    def sum(self):
        self.__privateCounter += 1
        print(self.__privateCounter)
  
  
count = Solution()
count.sum()
count.sum()
  
# Here we have accesed the private data
# member through class name.
print(count._Solution__privateCounter)


输出:

Traceback (most recent call last):
  File "/home/db01b918da68a3747044d44675be8872.py", line 11, in 
    print(count.__privateCount) 
AttributeError: 'Solution' object has no attribute '__privateCount'

为了纠正错误,我们可以通过类名访问私有成员:

蟒蛇3

class Solution:
    __privateCounter = 0
  
    def sum(self):
        self.__privateCounter += 1
        print(self.__privateCounter)
  
  
count = Solution()
count.sum()
count.sum()
  
# Here we have accesed the private data
# member through class name.
print(count._Solution__privateCounter)

输出:

1
2
2

数据隐藏的优点:

  1. 通过向公众隐藏易失性数据,它有助于防止损坏或滥用易失性数据。
  2. 类对象与无关数据断开连接。
  3. 它将对象隔离为 OOP 的基本概念。
  4. 它提高了针对无法访问重要数据的黑客的安全性。

数据隐藏的缺点:

  1. 它使程序员能够编写冗长的代码来向普通客户端隐藏重要数据。
  2. 可见和不可见数据之间的链接使对象工作得更快,但数据隐藏阻止了这种链接。