属性的封装
我们对属性进行保护则需要通过封装来实现,这就是我们常说的数据封装。封装数据的主要原因是保护隐私,但我们无法彻底割裂外部联系,因此,数据的访问和设置可以通过方法来实现。
1. 使用装饰符实现
class Person:
def __init__(self,nameValue):
self.__name = nameValue
@property
def name(self):
print("get method")
return self.__name
@name.setter
def name(self,nameValue):
print("set method")
self.__name = nameValue
@name.deleter
def name(self):
print("delete method")
del self.__name
p = Person("Tina")
p.name = "April"
print(p.name)
del p.name
#print(p.name)无法继续使用
上述代码的实现结果如下所示:
set method
get method
April
delete method
2. 使用特定方法实现
class Person:
def __init__(self,nameValue):
self.__name = nameValue
def __get(self):
print("get method")
return self.__name
def __set(self,nameValue):
print("set method")
self.__name = nameValue
def __del(self):
print("delete method")
del self.__name
name = property(__get,__set,__del)
其访问方法和结果同一