class Screen(object): @property def width(self): return self._width @width.setter def width(self,value): if isinstance(value,int) and value>0: return self._width==value else: raise ValueError('bad') @property def height(self): return self._height @height.setter def height(self,value): if isinstance(value,int) and value>0: return self._height==value else: raise ValueError('bad') @property def resolution(self): return self.width*self.height
#test: s=Screen() s._width=1024 s._height=768 print(s.resolution) assert s.resolution==786432,'1024*768=%d'%s.resolution
#python screen.py
这段代码是错误的,希望大家应以为戒!!!!
哪里出了问题?
return self._height==value 应该是self._height=value
####一个等于是赋值,两个等于是判断####
setter函数不用return的吧
Sign in to make a reply
El_Corazon
-- coding: utf-8 --
class Screen(object): @property def width(self): return self._width @width.setter def width(self,value): if isinstance(value,int) and value>0: return self._width==value else: raise ValueError('bad') @property def height(self): return self._height @height.setter def height(self,value): if isinstance(value,int) and value>0: return self._height==value else: raise ValueError('bad') @property def resolution(self): return self.width*self.height
#test: s=Screen() s._width=1024 s._height=768 print(s.resolution) assert s.resolution==786432,'1024*768=%d'%s.resolution
#python screen.py