类中属性和方法的访问限制机制
类中属性和方法的访问限制机制
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()