Python定义一个矩形类,包含长height和宽weight。首先定一个额外的封装的可读可写属性edges,可以读写其周长。再定义一个仅可读的area属性。,输出数列
时间: 2024-03-17 18:47:16 浏览: 53
好的,以下是Python的矩形类的代码:
```python
class Rectangle:
def __init__(self, height, width):
self._height = height
self._width = width
self._edges = 2 * (height + width)
@property
def edges(self):
return self._edges
@edges.setter
def edges(self, value):
self._edges = value
@property
def area(self):
return self._height * self._width
```
这个类有两个实例变量 `height` 和 `width`,分别表示矩形的长和宽。在构造函数中,我们还计算了矩形的周长,并将其存储在 `_edges` 变量中。
接下来,我们使用 `@property` 装饰器来创建一个名为 `edges` 的可读可写属性。当我们读取 `edges` 属性时,将返回 `_edges` 变量的值。当我们写入 `edges` 属性时,将更新 `_edges` 变量的值。
我们还使用 `@property` 装饰器来创建一个名为 `area` 的只读属性。当我们读取 `area` 属性时,将返回矩形的面积,即 `height` 和 `width` 的乘积。
现在我们可以创建一个矩形对象,如下所示:
```python
r = Rectangle(5, 10)
```
我们可以读取 `height` 和 `width` 属性:
```python
print(r.height) # 输出 5
print(r.width) # 输出 10
```
我们还可以读取 `edges` 和 `area` 属性:
```python
print(r.edges) # 输出 30
print(r.area) # 输出 50
```
最后,我们可以更新 `edges` 属性:
```python
r.edges = 40
print(r.edges) # 输出 40
```
但是,我们无法更新 `area` 属性,因为它是只读的:
```python
r.area = 60 # 抛出 AttributeError 异常
```
阅读全文