Python 数据保护

数据保护

有时我们设置了一些私有属于,并不是完全为了让属性不能被访问到,而是为了防止属性被不小心修改而使类受到了污染。

# 公有属性
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

在类的内部,一些比较敏感的数据,我们通过getset等方法来操作,确保数据安全。

Python 教程 Python 入门 Python 时间 Python JSON