Python 数据隐藏

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的原因。但是在最后的打印语句中,需要使用类名来访问password,因为私有成员的范围仅限于Employee类。

数据隐藏的优点

  • 通过封装重要数据来增强安全性。
  • 通过将类中的对象与无用数据断开连接,隐藏不相关的信息。
  • 防止创建指向错误数据的链接。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程