Posted By: mizipzor
I’m trying to understand the use of
super(). From the looks of it, both child classes can be created, just fine.
I’m curious to know about the actual difference between the following 2 child classes.
class Base(object): def __init__(self): print "Base created" class ChildA(Base): def __init__(self): Base.__init__(self) class ChildB(Base): def __init__(self): super(ChildB, self).__init__() ChildA() ChildB()
super() lets you avoid referring to the base class explicitly, which can be nice. But the main advantage comes with multiple inheritance, where all sorts of fun stuff can happen. See the standard docs on super if you haven’t already.
Note that the syntax changed in Python 3.0: you can just say
super().__init__() instead of
super(ChildB, self).__init__() which IMO is quite a bit nicer. The standard docs also refer to a guide to using
super() which is quite explanatory.