(1) 实现一个名为“Rectangle”的表示矩形的类,该类包含两个公有的实例属性width和height,分别表示矩形的宽和高,同时还有一个名为aera的公有方法,该方法返回矩形的面积。 (2) 修改上一步中的Rectangle类,将实例属性width和height改为可读写的property,并且在写操作时检查是否为正值,将area方法改为一个只读的property。 (3) 继承上一步中的Rectangle类来实现一个名为Square的正方形类,使得可以用Square(边长)的方式实例化该类,并重写父类中width和height的写方法,实现长和高的同时修改。
时间: 2023-06-02 14:03:54 浏览: 196
可以回答第一个问题:
(1) Rectangle类的代码实现如下:
class Rectangle:
def __init__(self, width, height):
self._width = width
self._height = height
@property
def width(self):
return self._width
@property
def height(self):
return self._height
def area(self):
return self._width * self._height
(2) 改进后的Rectangle类代码实现如下:
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:
raise ValueError("width must be positive")
self._width = value
@property
def height(self):
return self._height
@height.setter
def height(self, value):
if value < 0:
raise ValueError("height must be positive")
self._height = value
@property
def area(self):
return self._width * self._height
(3) 继承Rectangle的Square类代码实现如下:
class Square(Rectangle):
def __init__(self, side):
super().__init__(side, side)
@Rectangle.width.setter
def width(self, value):
self._width = self._height = value
@Rectangle.height.setter
def height(self, value):
self._width = self._height = value
注意:以上回答仅供参考,具体实现方式可能会因为实际代码环境的不同而异。
阅读全文