廖雪峰python教程练习—面向对象高级编程之使用@property
链接: [https://www.liaoxuefeng.com/wiki/1016959663602400/1017502538658208]
class Screen(object):
@property
def width(self):
return self._width
@width.setter
def width(self, value):
if not isinstance(value, int):
raise ValueError('width must be an integer')
self._width = value
@property
def height(self):
return self._height
@height.setter
def height(self, value):
if not isinstance(value, int):
raise ValueError('height must be an integer')
self._height = value
@property
def resolution(self):
return self._width*self._height
# 测试:
s = Screen()
s.width = 1024
s.height = 768
print('resolution =', s.resolution)
if s.resolution == 786432:
print('测试通过!')
else:
print('测试失败!')
本文通过实例演示了如何使用Python的@property装饰器来创建更优雅的类属性访问方式。通过定义Screen类,演示了如何设置和获取width和height属性,并计算resolution属性。此方法避免了直接访问类的私有变量,提供了更好的封装性和错误检查。
918

被折叠的 条评论
为什么被折叠?



