定义类Shape表示一般二维图形。Shape具有抽象方法area和perimeter,分别计算形状的面积和周长。试定义一些二维形状(如矩形、三角形、圆形等),这些类均为Shape的子类。
时间: 2023-09-21 11:06:28 浏览: 273
### 回答1:
矩形类:
class Rectangle(Shape):
def __init__(self, width, height):
self.width = width
self.height = height
def area(self):
return self.width * self.height
def perimeter(self):
return 2 * (self.width + self.height)三角形类:
class Triangle(Shape):
def __init__(self, a, b, c):
self.a = a
self.b = b
self.c = c
def area(self):
s = (self.a + self.b + self.c) / 2
return (s * (s-self.a) * (s-self.b) * (s-self.c)) ** 0.5
def perimeter(self):
return self.a + self.b + self.c圆形类:
class Circle(Shape):
def __init__(self, radius):
self.radius = radius
def area(self):
return 3.14 * (self.radius ** 2)
def perimeter(self):
return 2 * 3.14 * self.radius
### 回答2:
定义类Shape表示一般二维图形,包含抽象方法area和perimeter,分别计算形状的面积和周长。为了实现具体的二维形状,我们可以定义一些子类,如矩形、三角形和圆形。
1. 矩形(Rectangle)类是Shape的子类,具有宽度和高度两个属性。它实现了area方法,通过计算宽度乘以高度得到面积;同时也实现了perimeter方法,通过计算宽度加上高度的两倍得到周长。
2. 三角形(Triangle)类是Shape的子类,具有三个边长属性。它实现了area方法,通过使用海伦公式计算三角形的面积;同时也实现了perimeter方法,通过计算三个边长的和得到周长。
3. 圆形(Circle)类是Shape的子类,具有半径属性。它实现了area方法,通过计算半径的平方乘以π得到圆形的面积;同时也实现了perimeter方法,通过计算半径乘以2π得到周长。
通过定义这三个子类,我们可以根据具体的形状来计算其面积和周长。这样的设计可以提高代码的复用性和可扩展性,当需要计算其他二维形状的面积和周长时,只需定义新的子类并实现相应的方法即可。这样的类设计符合面向对象的原则,使得代码更加清晰、可维护和易于扩展。