python @property用法作用
- 2020 年 1 月 13 日
- 笔记
@property广泛应用在类的定义中,可以让调用者写出简短的代码,同时保证对参数进行必要的检查,这样,程序运行时就减少了出错的可能性。
练习
请利用@property给一个Screen对象加上width和height属性,以及一个只读属性resolution:
#_*_ coding: utf-8 _*_ class Screen(object): @property def width(self): return self._width @width.setter def width(self,value): if not isinstance(value,int): raise ValueError(' value is wrong type,it need int') if value < 0: raise ValueError('value must > 0') self._width = value @property def height(self): return self._height @height.setter def height(self,value): if not isinstance(value,int): raise ValueError(' value is wrong type,it need int') if value < 0: raise ValueError('value must > 0') self._height = value @property def resolution(self): self._resolution = self._height * self._width return self._resolution s= Screen() s.width = 1024 print(s.width) s.height = 768 print(s.height) print(s.resolution)