# coding=utf-8 ''' 裝飾器(decorator)可以給函數動態加上功能,對於類的方法,裝飾器一樣起作用。Python內置的@property裝飾器就是負責把一個方法變成屬性調用的: @property:把一個getter方法變成屬性 @score.setter:負責把一個setter方法變成屬性賦值 ''' class Screen(object): #讀屬性 @property def width(self): return self.value_of_width #寫屬性 @width.setter def width(self, value): self.value_of_width = value @property def height(self): return self.value_of_height @height.setter def height(self, value): self.value_of_height = value @property def resolution(self): return self.value_of_height*self.value_of_width if __name__ == '__main__': s = Screen() s.width = 1024 s.height = 768 print(s.resolution) assert s.resolution == 786432, '1024 * 768 = %d ?' % s.resolution