这是我的作业问题-
使用以下内容编写一个Python程序(带有类概念)以找到三角形的区域 式。 面积=(s *(s-a)(s-b)(s-c))** 0.5 应该在父级中定义从用户获取三角形边长的函数 计算面积的类和函数应在子类中定义。
我的程序就是这样-
class triangle:
def __init__(self, a, b, c):
self.a = a
self.b = b
self.c = c
class cal_area(triangle):
s = 0
area = 0
def area(self, *args):
super(cal_area, self).__init__(*args)
s = (self.a + self.b + self.c)/2
ar = (s * (s-self.a) * (s-self.b) * (s-self.c)) * 0.5
print(ar)
t = cal_area(23,43,56)
print(t.area)
我希望它能打印三角形的区域。但是输出是这个
<bound method cal_area.area of <__main__.cal_area object at 0x0415CCB0>>
我正在使用jupyter笔记本。 我该怎么做才能获得所需的输出。
答案 0 :(得分:1)
area
是一种方法,您没有调用它。在通话行中添加括号:
print(t.area())
不过,您需要删除super(cal_area, self).__init__(*args)
中的area
行(可能还有*args
参数);您的实例已经初始化,并尝试使用新值(在这种情况下可能是错误的参数数量)重新初始化它会引起问题。
最后,area
应该返回它计算的值,而不是打印它,将方法的最后一行更改为:
return ar