# Instantiate an object

#1

Sorry to be a nuisance. It seems that my problem arises from the last three lines. I am not sure why.I get the message.

"Oops, try again. Did you create an instance of Triangle called my_triangle?"
I know mu code is not elegant

``````class Triangle(object):
number_of_sides = 3
def check_angles(self, angle1, angle2, angle3, total ):
self.angle1 = angle1
self.angle2 = angle2
self.angle3 = angle3
self.total =angle1+angle2+ angle3
if total==180:
return true
else:
return false
my_triangle = Triangle(35, 55, 90)
print my_triangle.number_of_sides
print my_triangle.check_angles(35, 55, 90)``````

#2

what happened to your `__init__()` method?

#3

hmm, good question. I followed the instruction to the letter and just created a variable, my_triangle, and set it to the instance Triangle and then the print statements
One more silly/basic question Is there a difference, in the results or syntax terms,between (self.angle1+self.angle2+self.angle3) and (angle1+angle2+angle3)?

#4

but your `__init__()` method should be present from earlier exercise

well, if you wanted to do:

``````def check_angles(self, angle1, angle2, angle3):
if angle1 + angle2 + angle3 == 180:
return True
else:
return False``````

you will need to provide the angles again when calling the check angle methods:

``print my_triangle.check_angles(35, 55, 90)``

however, if you use `__init__()` correctly you only have to supply the angles at initialization and then you can just call check_angles:

``print my_triangle.check_angles()``

this is much better, what if we had more methods like check_angles, providing the angles every time you want to call a method.

remember, programming should be DRY (don't repeat yourself)

#5

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