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?
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.
superis more like part of the solution. Picking onsuperis like saying that seatbelts are bad because you can still get hurt in an accident. You are generally far better of if you usesuper.