Python | super() function with multilevel inheritance
super() function in Python:
Python super function provides us the facility to refer to the parent class explicitly. It is basically useful where we have to call superclass functions. It returns the proxy object that allows us to refer parent class by ‘super’.
To understand Python super function we must know about the inheritance. In Python inheritance, the subclasses are inherited from the superclass.
Python Super function provides us the flexibility to do single level or multilevel inheritances and makes our work easier and comfortable. Keep one thing in mind that while referring the superclass from subclass, there is no need of writing the name of superclass explicitly.
Here is one example of how to call the super function in Python3:
class Parentclass():
def __init__( self ):
pass
class subclass(Parentclass):
def __init__( self ):
super ()
|
Python super() function with multilevel inheritance.
As we have studied that the Python super()
function allows us to refer the superclass implicitly. But in multi-level inheritances, the question arises that there are so many classes so which class did the super()
function will refer?
Well, the super()
function has a property that it always refers the immediate superclass. Also, super()
function is not only referring the __init__() but it can also call the other functions of the superclass when it needs.
Here is the example of explaining the multiple inheritances.
class GFG1:
def __init__( self ):
print ( 'HEY !!!!!! GfG I am initialised(Class GEG1)' )
def sub_GFG( self , b):
print ( 'Printing from class GFG1:' , b)
class GFG2(GFG1):
def __init__( self ):
print ( 'HEY !!!!!! GfG I am initialised(Class GEG2)' )
super ().__init__()
def sub_GFG( self , b):
print ( 'Printing from class GFG2:' , b)
super ().sub_GFG(b + 1 )
class GFG3(GFG2):
def __init__( self ):
print ( 'HEY !!!!!! GfG I am initialised(Class GEG3)' )
super ().__init__()
def sub_GFG( self , b):
print ( 'Printing from class GFG3:' , b)
super ().sub_GFG(b + 1 )
if __name__ = = '__main__' :
gfg = GFG3()
gfg.sub_GFG( 10 )
|
Output:
HEY !!!!!! GfG I am initialised(Class GEG3)
HEY !!!!!! GfG I am initialised(Class GEG2)
HEY !!!!!! GfG I am initialised(Class GEG1)
Printing from class GFG3: 10
Printing from class GFG@: 11
Printing from class GFG1: 12
Last Updated :
01 May, 2019
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...