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