数据隐藏在 Python 类中如何运作?
数据隐藏
在 Python 中,我们在属性名前使用双下划线,以使它们不可访问/私有或隐藏它们。
以下代码显示了变量 __hiddenVar 如何被隐藏。
示例
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 instance has no attribute '__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 中,没有什么是真正私有的;私有方法和属性的名称会在运行时被破坏和复原,以使其无法通过给定名称来访问它们。
广告
数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 语言程序设计
C++
C#
MongoDB
MySQL
Javascript
PHP