下列 shape 类是一个表示形状的抽象类,area( )为求图形面积的函数,total( )则 是一个通用的用以求不同形状的图形面积总和的函数。请从 shape 类派生三角形 类(triangle)、矩形类(rectangle),并给出具体的求面积函数。
时间: 2024-05-10 21:18:22 浏览: 45
设计一个抽象类图形类,在该类中包含有至少两个抽象方法求周长和求面积,分别定义圆形类、长方形类、正方形类、三角形类来继承图形类,并实现上述两个方法
5星 · 资源好评率100%
```python
from abc import ABC, abstractmethod
class Shape(ABC):
@abstractmethod
def area(self):
pass
@staticmethod
def total(shapes):
return sum([shape.area() for shape in shapes])
class Triangle(Shape):
def __init__(self, base, height):
self.base = base
self.height = height
def area(self):
return 0.5 * self.base * self.height
class Rectangle(Shape):
def __init__(self, width, height):
self.width = width
self.height = height
def area(self):
return self.width * self.height
```
注:以上代码中使用了抽象类(`ABC`)和抽象方法(`@abstractmethod`)的概念,这些概念可以帮助我们规范和约束代码的实现,使代码更加可维护和可扩展。
阅读全文