-1

我试图从输入中获取三角形边的长度,然后在子类中找到该区域。我收到子类的语法错误。

代码:

class triangle():                                                  # parent class
     def sides(self):
         self.a = float(input("Enter the sides of triangle: "))
         self.b = float(input("Enter the sides of triangle: "))
         self.c = float((input("Enter the sides of triangle: "))
class area(triangle):                                              #child class
     def ar(): 
         s = (a+b+c)/2
         ar =  (s*(s-a)*(s-b)*(s-c)) ** 0.5 
     return ar
p = triangle()
q = area()
p.sides()
print(q.area())
4

2 回答 2

3

这应该工作

class triangle():  # parent class
    def __init__(self, a, b, c):
        self.a = a
        self.b = b
        self.c = c

class area(triangle):  # child class
    def __init__(self, a, b, c):
        super().__init__(a, b, c)

    def ar(self):
        s = (self.a + self.b + self.c) / 2
        ar = (s * (s - self.a) * (s - self.b) * (s - self.c)) ** 0.5
        return ar

a=input()
b= input()
c =input()
q = area(int(a),int(b),int(c))
print(q.ar())

您的代码中有多个问题。主要的事情是:

-> 在构造函数init () 函数中初始化你的变量

-> 在继承时,我们使用 super() 命令来初始化父类变量。在您的情况下,子类无法识别 a,b,c

-> 你只需要找到三角形的面积。您不需要在这里为父类创建对象。

还有一些..

于 2020-04-04T14:06:46.983 回答
0
q.ar() #instead of q.area() 

也尝试修复你的缩进

于 2020-04-04T14:00:38.930 回答