类中属性和方法的访问限制机制
类中属性和方法的访问限制机制
1、什么是访问限制机制
凡是在类内部定义的属性或方法,以__开头的属性或者方法名,都会被限制,外部不能 “直接访问” 该属性原型(这是python特有的)
PS:看起来就像是将该属性或方法隐藏起来了
注意:凡是在类内部定义__开头的属性或方法,都会变形为:_类名__属性/方法,可以通过 “对象._类名__属性/方法” 调用
2、为什么要使用访问限制机制
可以将一些隐私的数据,隐藏起来,不让外部轻易获取
应用场景:
可以将一些数据封装成一个接口,可以让用户调用接口,并且通过相应的逻辑判断或者校验,最后再将数据返回给用户
3、例:访问限制机制
例1:使用访问机制 取数据
class Animal:
# __开头的属性
__name = "pig" # __name变形为 _类名__name
# __开头的方法
def __run(self):
print("pig is running...")
# 直接访问
# print(Animal.__name) # 报错:AttributeError: type object "Animal" has no attribute "__name"
obj = Animal()
# 对象._类名__name
print(obj._Animal__name)
obj._Animal__run()

![类中属性和方法的访问限制机制[Python常见问题]](https://www.zixueka.com/wp-content/uploads/2023/10/1696831584-912923bebb5279d.jpg)
