Just to write it in a more modern Python way so you can see how that look,and use the class.
class Polygon: def __init__(self, no_of_sides): self.n = no_of_sides self.sides = [0 for i in range(no_of_sides)] def input_sides(self): self.sides = [float(input(f"Enter side {i+1}: ")) for i in range(self.n)] @property def disp_sides(self): for i in range(self.n): print(f"Side {i+1} is {self.sides[i]}") class Triangle(Polygon): # Could have set it as a default value in Polygon <no_of_sides=3> def __init__(self): super().__init__(3) @property def find_area(self): a, b, c = self.sides s = (a + b + c) / 2 print(a, b, c) area = (s*(s-a) * (s-b) * (s-c)) ** 0.5 print(f'The area of the triangle is {area:.2f}')Usage.
>>> obj = Triangle() >>> obj.n 3 >>> obj.sides [0, 0, 0] >>> >>> # Overwrite sides >>> obj.input_sides() Enter side 1: 5 Enter side 2: 4 Enter side 3: 3 >>> obj.sides [5.0, 4.0, 3.0] >>> >>> obj.disp_sides Side 1 is 5.0 Side 2 is 4.0 Side 3 is 3.0 >>> >>> obj.find_area 5.0 4.0 3.0 The area of the triangle is 6.00