有时候我们可能需要监听一个类中成员的变化(例如判断它的修改是否合法或者做出相应行动).
我们可以利用python的@property装饰器实现,
直接看例子:
class Student(object):
@property
def score(self):
return self._score
@score.setter
def score(self, value):
if not isinstance(value, int):
raise ValueError('score must be an integer!')
if value < 0 or value > 100:
raise ValueError('score must between 0 ~ 100!')
self._score = value
使用时这样使用:
stu = Student()
print (stu.score) # 获取数据
stu.score = 200 # 超过100分, 会报错