Python 类中的数据隐藏是如何工作的

Python类中的数据隐藏是如何工作的?

数据隐藏

在Python中,我们在属性名称前使用双下划线使它们无法访问/私有化或隐藏它们。

以下代码展示了变量__hiddenVar是如何被隐藏的。

更多Python相关文章,请阅读:Python 教程

示例

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实例没有'__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中没有真正的私有内容; 内部,私有方法和属性的名称在运行时被转换和还原,使它们无法通过给定名称访问。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程