@score.setter defscore(self, value): ifnot isinstance(value, int): raise ValueError('score must be an integer!') if value < 0or value > 100: raise ValueError('score must between 0 ~ 100!') self._score = value
需要注意的是使用方法: get函数(第一个 score )上使用 @property 关键字,此时@property 本身又创建了另一个装饰器 @score.setter,负责把setter方法变成属性赋值,因此只要在 set 函数上使用 @score.setter 关键字就可以了。一般可以在 set 函数中对属性参数做一些必要的检查。如果只有 set 函数(@property 的部分),那么函数对应的就是只读属性。