实现一个名为“Rectangle”的表示矩形的类,该类包含两个公有的实例属性width和height,分别表示矩形的宽和高,同时还有一个名为aera的公有方法,该方法返回矩形的面积。要求:将实例属性width和height改为可读写的property,并且在写操作时检查是否为正值,将area方法改为一个只读的property。
class Rectangle:
def __init__(self,width,height):
self._width=width
self._height=height
@property
def width(self):
return self._width
@width.setter
def width(self,vlue):
if vlue<0:
raise ValueError("宽度必须为非负数")
self._width
@property
def height(self):
return self._height
@height.setter
def height(self,vlue):
if vlue<0:
raise ValueError("高度必须为非负数")
self._height
@property
def area(self):
return self._height*self._width
可以用以下方法进行测试:
r=Rectangle(4,5)
print(r.width)
print(r.height)
print(r.area)
产生如下输出:
4
5
20
r.width=-5#引起ValueError错误
产生如下结果:
ValueError: 宽度必须为非负数
如果有什么错误,希望大家多多包涵并指正。