分别为正方形 矩形、三角形构建类Square Rectangle. Triangle, 分别包含各自的边长,用doulble 型数据表示。每个类都至少包含4个函数成员,函数init用于设置图形的边长,函数perimeter用来计算图形的周 长,西数area用来计算图形的面积,函数show用于显示图形的类别(方形矩形或三角形) 周长和面积。编 稈分别气示一个方形 、一个矩形 一个三角形的周长和面积。思考并回答,能否將了个类合并成一个类,如果 能,怎么做?如果不能,为什么?
时间: 2024-02-13 22:05:45 浏览: 129
好的,下面是分别为正方形、矩形和三角形构建的类:
```python
class Square:
def __init__(self, side):
self.side = side
def perimeter(self):
return 4 * self.side
def area(self):
return self.side ** 2
def show(self):
print("This is a square with perimeter {:.2f} and area {:.2f}".format(self.perimeter(), self.area()))
class Rectangle:
def __init__(self, width, height):
self.width = width
self.height = height
def perimeter(self):
return 2 * (self.width + self.height)
def area(self):
return self.width * self.height
def show(self):
print("This is a rectangle with perimeter {:.2f} and area {:.2f}".format(self.perimeter(), self.area()))
class Triangle:
def __init__(self, base, height, side1, side2, side3):
self.base = base
self.height = height
self.side1 = side1
self.side2 = side2
self.side3 = side3
def perimeter(self):
return self.side1 + self.side2 + self.side3
def area(self):
return 0.5 * self.base * self.height
def show(self):
print("This is a triangle with perimeter {:.2f} and area {:.2f}".format(self.perimeter(), self.area()))
```
我们可以分别使用这三个类来计算一个正方形、一个矩形和一个三角形的周长和面积。
```python
square = Square(2)
square.show()
rectangle = Rectangle(3, 4)
rectangle.show()
triangle = Triangle(5, 3, 4, 6, 7)
triangle.show()
```
输出结果为:
```
This is a square with perimeter 8.00 and area 4.00
This is a rectangle with perimeter 14.00 and area 12.00
This is a triangle with perimeter 17.00 and area 7.50
```
现在回答问题:能否将这三个类合并成一个类?答案是可以。我们可以定义一个`Shape`类,然后在`Shape`类的`__init__`方法中传入各个形状的参数(例如正方形的边长、矩形的宽度和高度等),然后定义`perimeter`方法和`area`方法来计算周长和面积,最后定义`show`方法来显示图形的类别、周长和面积。但是,合并成一个类可能会让代码变得混乱和冗长,所以在实际开发中,我们可能更倾向于使用不同的类来表示不同的图形。
阅读全文