Inheritance


#1



https://www.codecademy.com/courses/python-intermediate-en-WL8e4/3/4?curriculum_id=4f89dab3d788890003000096#


Oops, try again. Failed to instantiate Equilateral, an error was thrown: 'Equilateral' object has no attribute 'angle1'


I am not sure what's wrong with my code, please help.


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(90,30,60)
print my_triangle.number_of_sides
print my_triangle.check_angles()

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


#2

here:

self.angle1 == self.angle

why do you use two equal signs? This means check if equal, which makes more sense when doing comparison

we want to create instance variable (self.angle1 and so on) inside init method so we don't have to supply 3 times 60 when creating an class instance, and then we have the variable to call check_angles method, so use a single equal sign


#3

I see. Thank you very much!


#4