Discuss / Python / @property给一个Screen对象加上width和height,以及只读属性resolution

@property给一个Screen对象加上width和height,以及只读属性resolution

Topic source

最帅的仔

#1 Created at ... [Delete] [Delete and Lock User]
class Screen(object):
    
    @property
    def width(self):
        return self._width

    @width.setter
    def width(self, width):
        if not isinstance(width, int): 
            raise ValueError('width must be an integer!')
        self._width = width

    @property
    def height(self):
        return self._height
    
    @height.setter
    def height(self, height):
        if not isinstance(height, int): 
            raise ValueError('height must be an integer!')
        self._height = height
    
    @property
    def resolution(self):
        print(f'{self._width} × {self._height}')
        return self._width * self._height

# 测试:
s = Screen()
s.width = 1024
s.height = 768
print('resolution =', s.resolution)
if s.resolution == 786432:
    print('测试通过!')
else:
    print('测试失败!')

# 1024 × 768
# resolution = 786432 
# 1024 × 768
# 测试通过!

  • 1

Reply