定义一个方法,用于返回这个三角形的字符串描述。
时间: 2024-03-07 22:48:11 浏览: 19
好的,我们可以在Triangle类中定义一个__str__方法,用于返回这个三角形的字符串描述。可以参考下面的代码实现:
```python
class Triangle:
def __init__(self, a, b, c):
self.a = a
self.b = b
self.c = c
def perimeter(self):
return self.a + self.b + self.c
def area(self):
p = self.perimeter() / 2
return (p * (p - self.a) * (p - self.b) * (p - self.c)) ** 0.5
def __str__(self):
return "Triangle with sides {}, {} and {}".format(self.a, self.b, self.c)
```
在这个类中,我们新增了一个__str__方法,它返回一个字符串,用于描述这个三角形的三个边长。使用.format方法可以将三个边长插入到字符串中。当我们使用print函数打印一个Triangle对象时,就会调用这个__str__方法来获取这个对象的字符串描述。
相关问题
请定义一个描述三角形的Triangle类:
Triangle类是一个描述三角形的类,包含三个私有属性:边长a、边长b、边长c,以及一个公有方法:计算三角形的面积。其中,面积的计算公式为海伦公式:s=(a+b+c)/2,面积S=sqrt(s(s-a)(s-b)(s-c))。
设计一个名为Triangle的类来扩展GeometricObject类。该类包括: (1)三个名为side1、side2、side3的数据域表示这个三角形的三条边,它们的默认值是1.0。 (2)一个能创建带指定side1、side2和side3的三角形的构造方法。 (3)一个名为getArea()的方法返回这个三角形的面积。 (4)一个名为getPerimeter()的方法返回这个三角形的周长。 (5)定义一个方法,用于返回这个三角形的字符串描述。
好的,我们可以定义一个Triangle类,继承自GeometricObject类,来实现这些功能。可以参考下面的代码实现:
```python
class Triangle(GeometricObject):
def __init__(self, side1=1.0, side2=1.0, side3=1.0, color="white", filled=False):
super().__init__(color, filled)
self.side1 = side1
self.side2 = side2
self.side3 = side3
def getArea(self):
p = self.getPerimeter() / 2
return (p * (p - self.side1) * (p - self.side2) * (p - self.side3)) ** 0.5
def getPerimeter(self):
return self.side1 + self.side2 + self.side3
def __str__(self):
return "Triangle with sides {}, {} and {}".format(self.side1, self.side2, self.side3)
```
在这个类中,我们继承了GeometricObject类,并新增了三个属性side1、side2、side3来表示三角形的三条边。在__init__方法中,我们调用了父类的__init__方法来初始化color和filled字段,并对side1、side2、side3进行初始化。在getArea和getPerimeter方法中,我们使用三个边长计算出三角形的面积和周长。在__str__方法中,我们返回一个字符串,用于描述这个三角形的三个边长。