有时我们设置了一些私有属于
,并不是完全为了让属性不能被访问到,而是为了防止属性被不小心修改而使类受到了污染。
# 公有属性
class Attr:
def __init__(self):
self.name = 'attr'
>>> attr = Attr()
>>> attr.name = 'xxx' # 公有属性过于自由,有时会污染到类到内部
>>> attr.name
'xxx'
# 访问私有属性
class Attr:
def __init__(self):
self.__name = 'attr'
# 内部方法做为访问私有属性的接口
def get_name(self):
return self.__name
>>> attr = Attr()
>>> attr.get_name()
'attr'
# 修改私有属性 | 前提是保证数据的安全性
class Attr:
def __init__(self):
self.__age = 20
def get_age(self):
return self.__age
# 内部方法做为修改私有属性的接口,并且进行安全验证
def set_age(self, age):
if age < 30:
self.__age = age
>>> attr = Attr()
>>> attr.set_age(23)
>>> attr.get_age()
23
在类的内部,一些比较敏感的数据,我们通过get
、set
等方法来操作,确保数据安全。