Inheritence


#1

I get the following error code: Failed to instantiate Equilateral, an error was thrown: 'Equilateral' object has no attribute 'angle1'

I've looked through the forum and haven't been able to get any insight on what I'm doing wrong. I've followed the direction stating at the init method in the Equilateral class should only have the argument "self". I've inherited the Triangle class which entails the self.angle1. So why does it say it has no attribute?

class Triangle(object):
    def __init__(self, angle1, angle2, angle3):
        self.angle1 = angle1
        self.angle2 = angle2
        self.angle3 = angle3
    
    number_of_sides = 3
    
    def check_angles(self):
        if self.angle1 + self.angle2 + self.angle3 == 180:
            return True
        else:
            return False

my_triangle = Triangle(60, 60, 60)
print my_triangle.number_of_sides
print my_triangle.check_angles()

class Equilateral(Triangle):
    angle = 60
    def __init__(self):
        self.angle = self.angle1
        self.angle = self.angle2
        self.angle = self.angle3

#2

I managed to figure it out. I need to put the self.angle1 before the self.angle, because the point of the init method is to define those new attributes against against an attribute that is already defined (let me know if I'm wording this right).

def __init__(self):
        self.angle1 = self.angle
        self.angle2 = self.angle
        self.angle3 = self.angle

#3

make it

self.angle1=self. Angle and so on.