Inheritance


#1



I do not understand why the below code isnt working? I suspect its because of "self.angle1=angle"

But i do not understand why i need "self.angle" instead of just angle?
I mean we define angle in the Equilateral triangle function


class Triangle(object):
    number_of_sides=3;
    def __init__(self,angle1,angle2,angle3):
        self.angle1=angle1
        self.angle2=angle2
        self.angle3=angle3
        
    def check_angles(self):
        sum=self.angle1+self.angle2+self.angle3
        if sum == 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=angle;
        self.angle2=angle;
        self.angle3=angle;


#2

In the Equilateral class, yes. That is a problem.

self.angle1 = self.angle

See the difference?

As you will read later, this __int__ is overriding the parent class __init__ by writing over the inherited members. By keeping the same member variables the inherited methods will still jive.


#3

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