views:

73

answers:

2

Say I have the folowing code:

class Class1(object):

    def __init__(self):
        self.my_attr = 1
        self.my_other_attr = 2

class Class2(Class1):

    def __init__(self):
        super(Class1,self).__init__()

Why does Class2 not inherit the attributes of Class1?

+9  A: 

You used super wrong, change it to

super(Class2, self).__init__()

Basically you tell super to look above the given class, so if you give Class1 then that __init__ method is never called.

nikow
Thanks, thats done it
+4  A: 

Because you're giving super the wrong class. It should be:

class Class2(Class1):

    def __init__(self):
        super(Class2,self).__init__()
detly