实现一个名为“Rectangle”的表示矩形的类,该类包含两个实例属性width和height,都是可读写的property,分别表示矩形的宽和高,同时还有一个名为aera的方法,是一个只读的property,该方法返回矩形的面积。
时间: 2024-10-09 11:06:59 浏览: 49
Rectangle
在Python中,你可以创建一个名为`Rectangle`的类,利用`@property`装饰器来实现可读写属性以及只读属性。这里是具体的实现:
```python
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, value):
if value >= 0:
self._width = value
else:
raise ValueError("宽度值必须是非负数")
@property
def height(self):
return self._height
@height.setter
def height(self, value):
if value >= 0:
self._height = value
else:
raise ValueError("高度值必须是非负数")
@property
def area(self):
return self._width * self._height
# 使用示例
rectangle = Rectangle(5, 4)
print(rectangle.width) # 输出:5
rectangle.width = 6 # 修改宽度
print(rectangle.area) # 输出:24 (因为宽度变为6,高度不变)
try:
rectangle.width = -1 # 这将引发ValueError,因为宽度不能是负数
except ValueError as e:
print(e)
# 面积是只读的
print(rectangle.area) # 输出:24
```
在这个类中,`width` 和 `height` 属性可以读取和设置,而 `area` 是一个只读属性,因为它没有对应的 `setter` 方法。
阅读全文