Question
Asked By – Mike
class A:
def __init__(self):
print("world")
class B(A):
def __init__(self):
print("hello")
B() # output: hello
In all other languages I’ve worked with the super constructor is invoked implicitly. How does one invoke it in Python? I would expect super(self)
but this doesn’t work.
Now we will see solution for issue: How to invoke the super constructor in Python?
Answer
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-3.x
class A(object):
def __init__(self):
print("world")
class B(A):
def __init__(self):
print("hello")
super().__init__()
Python-2.x
In python 2.x, you have to call the slightly more verbose version super(<containing classname>, self)
, which is equivalent to super()
as per the docs.
class A(object):
def __init__(self):
print "world"
class B(A):
def __init__(self):
print "hello"
super(B, self).__init__()
This question is answered By – Aidan Gomez
This answer is collected from stackoverflow and reviewed by FixPython community admins, is licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0