背景介绍
通常我们在获得变量的一些私有属性时,必须通过方法来获取私有属性,并不能直接访问;修改其数值的时候也是要通过方法去修改,这样非常的不方便
所以python提供了一种方式,将调用方法的的形式转变为访问属性,这样使用非常方便
将三个方法定义为对同一个属性:获取、修改、删除
class Student():
def __init__(self):
# 这是一个私有属性
self._score = None
# 获取属性的时候会执行下面的代码
@property
def score(self):
return self._score
# 修改属性的时候会执行下面的代码
@score.setter
def score(self, value):
if value < 0 or value > 100:
raise ValueError('score must between 0 ~ 100!')
self._score = value
# 删除属性的时候会执行下面的代码
@score.deleter
def score(self):
del self._score
if __name__ == "__main__":
s = Student()
print(s.score)
s.score = 66
print(s.score)
del s.score
print(s.score) # score已经被删除,此时再次尝试获取时会发生报错