Python内置的@property装饰器就是负责把一个方法变成属性调用的,@property
广泛应用在类的定义中,可以让调用者写出简短的代码,同时保证对参数进行必要的检查,这样,程序运行时就减少了出错的可能性。
题目:利用@property给一个Screen对象加上width和height属性和一个只读属性resolution。
注意:检查width和height参数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
class Screen(object): @property def width(self): return self._width @width.setter def width(self,value): self.isint(value) self._width = value @property def height(self): return self._height @height.setter def height(self,value): self.isint(value) self._height = value @property def resolution(self): return self._width * self._height def isint(self,value): if not isinstance(value,int): raise ValueError('value must be an int') if value < 0: raise ValueError('value must be not a negative number') |
我的微信
扫一扫加我微信