17.instantiate an object


#1



Here I am unable to understand two things:
1.why can't I use angle1.self instead of self.angle1?
2.In line 18 I use this command my_triangle.number_of_sides can I use this my_triangle.number_of_sides()?

I have added my original code below.


could somebody explain both issues?


class Triangle:
    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()


#2

technically you can, but it would be a bit weird.

the point of self.angle1 is to create an instance variable named angle1, and we give it a value of angle1 (init parameter)

number_of_sides is a member variable, when accessing member variable you shouldn't use parentheses, that is for calling methods


#3

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.