Python inheritance

Python Methods and Functions

In the world of object-oriented programming (OOP), inheritance refers to the mechanism of a class`s ability to inherit or extend properties of another class at runtime. This property allows a derived class to obtain properties or traits of a base class.

Inheritance in Python is considered one of the most important aspects of OOP because it serves as a reusable function, which makes a piece of code more robust.

inheritance flowchart

< / p>


  • Inheritance describes relationships that resemble real-world scenarios.
  • It provides a reusability that allows the user to add additional functionality to a derived class without changing it.
  • If the class Y inherits from class X, then automatically all subclasses of Y will inherit from class X.

Basic inheritance terms

  1. Subclass / derived class: this is a class that inherits properties from another class (usually a base class).
  2. Superclass / base class: This is the class from which other subclasses come from.
  3. A derived class usually derives / inherits / extends a base class.


 class SuperClassName: Body of Super class class DerivedClass_Name (SuperClass): Body of de rived class 


Let`s dive into the world of Python inheritance with simple examples. Read also about multiple inheritance .

< br>

Step 1. Create a base class

 class Father: # The keyword `self` is used to represent the instance of a class. # By using the "self" keyword we access the attributes and methods of the class in python. # The method "__init__" is called as a constructor in object oriented terminology. # This method is called when an object is created from a class. # it allows the class to initialize the attributes of the class. def __init __ (self, name, lastname): = name self.lastname = lastname def printname (self): print (, self.lastname) # Use the Father class to create an object, and then execute the printname method: x = Father ("Anees", "Mulani") x.printname () 

Output: Anees Mulani

Step 2. Create a derived class

 # The subclass __init __ () function overrides the inheritance of the base class __init __ () function. class Son (Father): def __init __ (self, name, lastname): Father .__ init __ (self, name, lastname) x = Son ("Dev", "Bajaj") x.printname () 

Conclusion: Dev Bajaj

Using the super () function

Using the super () function, you don`t need to use the parent element name, it will automatically inherit the methods and properties from its parent.

 class Father: def __init __ (self, name, lastname): = name self.lastname = lastname def printname (self): print (, self.lastname) class Son (Father): def __init __ (self, name, lastname): super () .__ init __ (name, lastname) x = Student ("Dev", "Bajaj") x.printname () 

Get Solution for free from DataCamp guru