property的意义
@property把一个类的getter方法变成属性,如果还有setter方法,就在setter方法前面加上@method.setter,可以直接通过 “类.方法” 的形式修改私有属性的值
如下
class Screen(object):
def __init__(self):
self._width = 500
self._height = 1000
@property
def width(self):
return self._width
@width.setter
def width(self, value):
self._width = value
@property
def height(self):
return self._height
@height.setter
def height(self, value):
self._height = value
@property
def resolution(self):
return self._width * self._height
if __name__ == '__main__':
s = Screen()
s.width = 768
s.height = 1024
print('resolution =', s.resolution)
if s.resolution == 786432:
print('测试通过!')
else:
print('测试失败!')
运行结果