Python: Call Parent class method

A class is a user-defined blueprint or prototype from which objects are created. Classes provide a means of bundling data and functionality together. Creating a new class creates a new type of object, allowing new instances of that type to be made.

Example:

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python program to demonstrate
# classes
  
  
class cls:
  
    # Constructor
    def __init__(self, fname, mname, lname):
        self.firstname = fname
        self.middlename = mname
        self.lastname = lname
          
    # class Function
    def print(self):
        print(self.firstname, self.middlename, self.lastname)
  
# Use the Parent class to create an object
# and then execute the print method:
x = cls("Geeks", "for", "Geeks")
x.print()

chevron_right


Output:

Geeks for Geeks

Calling Parent class Method

To understand about the concept of parent class, you have to know about Inheritance in Python. In simpler terms, inheritance is the concept by which one class (commonly known as child class or sub class) inherits the properties from another class (commonly known as Parent class or super class).

But have you ever wondered about calling the functions defined inside the parent class with the help of child class? Well this can done using Python. You just have to create an object of the child class and call the function of the parent class using dot(.) operator.



Example:

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python code to demonstrate 
# parent call method 
  
class Parent:
  
    # create a parent class method
    def show(self):
        print("Inside Parent class")
  
# create a child class
class Child(Parent):
      
    # Create a child class method
    def display(self):
        print("Inside Child class")
  
# Driver's code
obj = Child()
obj.display()
  
# Calling Parent class
obj.show()

chevron_right


Output

Inside Child class
Inside Parent class

Calling Parent class method after method overriding

Method overriding is an ability of any object-oriented programming language that allows a subclass or child class to provide a specific implementation of a method that is already provided by one of its super-classes or parent classes.

Parent class methods can also be called within the overridden methods. This can generally be achieved by two ways.

  • Using Classname: Parent’s class methods can be called by using the Parent classname.method inside the overridden method.

    Example:

    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    # Python program to demonstrate
    # calling the parent's class method
    # inside the overridden method
      
      
    class Parent():
          
        def show(self):
            print("Inside Parent")
              
    class Child(Parent):
          
        def show(self):
              
            # Calling the parent's class
            # method
            Parent.show(self)
            print("Inside Child")
              
    # Driver's code
    obj = Child()
    obj.show()

    chevron_right

    
    

    Output:

    Inside Parent
    Inside Child
    
  • Using Super(): 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’.

    Example 1:

    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    # Python program to demonstrate
    # calling the parent's class method
    # inside the overridden method using
    # super()
      
      
    class Parent():
          
        def show(self):
            print("Inside Parent")
              
    class Child(Parent):
          
        def show(self):
              
            # Calling the parent's class
            # method
            super().show()
            print("Inside Child")
              
    # Driver's code
    obj = Child()
    obj.show()

    chevron_right

    
    

    Output:

    Inside Parent
    Inside Child
    

    Example 2:

    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    # Program to define the use of super() 
    # function in multiple inheritance 
    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 inherits the GFG1 
    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 inherits the GFG1 ang GFG2 both 
    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
        
        
    # main function 
    if __name__ == '__main__'
        
        # created the object gfg 
        gfg = GFG3() 
        
        # calling the function sub_GFG3() from class GHG3 
        # which inherits both GFG1 and GFG2 classes 
        gfg.sub_GFG(10)

    chevron_right

    
    

    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 GFG2: 11
    Printing from class GFG1: 12
    



My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.


Article Tags :

Be the First to upvote.


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.