17/18. About reclaim the attributes in methods


#1

Here is my code:

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 angle1+angle2+.angle3==180:   <=====I managed to figure out the problem is here
            return True
        else:
            return False

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

I thought angle1/2/3 have been claimed in init as self.angle1/2/3.
Why still need to claim in the check_angle() method?


#2

Because they are the defined instance variables. angle1, angle2 and angle3 are transient, and no longer exist in any scope.

if self.angle1 + self.angle2 + self.angle3 == 180: