Jim Jeffries
Jim Jeffries

Reputation: 10081

Python Attributes and Inheritance

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?

Upvotes: 1

Views: 400

Answers (2)

detly
detly

Reputation: 30342

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

class Class2(Class1):

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

Upvotes: 4

nikow
nikow

Reputation: 21578

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.

Upvotes: 10

Related Questions