私有化
python的私有化是伪私有化 是通过_类名__变量来重命名的所以外界访问不了
_单下划线表示私有属性和方法,可以在类对象子类访问
__双下划线也是私有属性,只可以在当前类中使用,无法被继承.还有一个作用就是避免变量名冲突
如果想部分私有化属性可以被外界使用 可以使用
__all __ =["私有变量名"]
个人总结私有属性的使用场景:如果遇到某些参数不可以在类外部随意更改,比如下面的age 不能在外部随意赋值,则设置成私有属性,通过类方法来调用更改,在更改的同时校验参数的合法性
class A():
def __init__(self):
self.__age = 18
def setAge(self, value):
if isinstance(value, int) and 0 < value < 200:
self.__age = value
return self.__age
else:
return "传入的数值有误"
def getAge(self):
return self.__age
c1 = A()
print(c1.setAge(20))
# print(c1.getAge())