类中属性和方法的访问限制机制

类中属性和方法的访问限制机制[Python常见问题]

类中属性和方法的访问限制机制

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()
hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 » 类中属性和方法的访问限制机制