- 概念:将一些原本公开的属性设置权限, 只能
小范围访问
, 其他地方访问不了
1. 保证数据安全
例如一个人的 money, 可以通过工作增加, 也可以通过消费减少, 但是不可能无意义随便地被改变
2. 进行数据过滤
通过接口来获取和操作数据, 在接口中对数据进行过滤
- 实现
1. Python 并没有真正的私有化支持, 但可以使用下划线完成伪私有的效果
2. 类属性、实例属性、类方法和实例方法遵循相同规则
- 形式
1. x: 公有属性;
_y: 受保护属性;
__z: 私有属性;
xx_: 与系统内置关键字作区分;
__xx__: 一般为系统内置属性或方法
2. 私有属性实现机制: 名字重整(Name Mangling), 重改 __x 为另外一个名称, 如 _类名__x
- 访问范围
- 应用场景
class Person:
# 主要作用, 当我们创建好一个实例对象之后, 会自动地调用这个方法, 来初始化这个对象
def __init__(self):
self.__age = 18
def set_age(self, value):
if isinstance(value, int) and 0 < value < 200:
self.__age = value
else:
print("您输入的数据有问题, 请重新输入")
def get_age(self):
return self.__age
p = Person()
p.set_age(220)
print(p.get_age())