How to invoke the super constructor in Python?
In line with the other answers, there are multiple ways to call super class methods (including the constructor), however in Python-3.x the process has been simplified:
Python-2.x
class A(object): def __init__(self): print "world"class B(A): def __init__(self): print "hello" super(B, self).__init__()
Python-3.x
class A(object): def __init__(self): print("world")class B(A): def __init__(self): print("hello") super().__init__()
super()
is now equivalent to super(<containing classname>, self)
as per the docs.
super()
returns a parent-like object in new-style classes:
class A(object): def __init__(self): print("world")class B(A): def __init__(self): print("hello") super(B, self).__init__()B()
With Python 2.x old-style classes it would be this:
class A: def __init__(self): print "world" class B(A): def __init__(self): print "hello" A.__init__(self)