定义一个矩形类rectangle包含长height和宽width,首先定义一个额外的封装的可读可写属性edges,可以读写其周长,再定义一个仅可读的area属性返回其面积在测试代码中使用这两个属性。
时间: 2024-12-12 07:16:48 浏览: 11
在Python中,你可以这样定义一个Rectangle类来满足你的需求:
```python
class Rectangle:
def __init__(self, height, width):
self._height = height
self._width = width
self.edges = self.calculate_edges()
@property
def height(self):
return self._height
@height.setter
def height(self, new_height):
self._height = new_height
self.edges = self.calculate_edges()
@property
def width(self):
return self._width
@width.setter
def width(self, new_width):
self._width = new_width
self.edges = self.calculate_edges()
def calculate_edges(self):
return 2 * (self._height + self._width)
@property
def area(self):
return self._height * self._width
# 测试代码
rect = Rectangle(5, 10)
print("Edges:", rect.edges)
print("Area:", rect.area)
rect.height = 8
print("New Edges with updated height:", rect.edges)
```
在这个定义中,我们使用了装饰器`@property`来创建只读属性`height`和`width`,并且当这些属性值改变时更新`edges`属性。`calculate_edges`方法负责计算周长,而`area`属性则是只读的,直接返回矩形的面积。
阅读全文