Python Inheritance Examples Tutorial – Complete Guide

Welcome to a fascinating exploration into Python inheritance. A foundational aspect of object-oriented programming, Python inheritance is a technique that takes programming to new heights, allowing for powerful, streamlined code. In the following tutorial, we will dive deep into inheritance, its use cases, and how you can effectively apply this concept in your Python programming journey.

What is Inheritance in Python?

In Python, inheritance refers to the process where one class acquires the properties (methods and attributes) of another class. This order of inheritance allows classes to share functionality, promote code reusability, and foster an efficient hierarchy of classes.

Understanding and using inheritance is crucial for any budding Python programmer for several reasons:

  • It promotes code reusability , cutting down on repetitive code and simplifying large projects.
  • It helps in creating a well-organized, logical structure for your code.
  • It’s widely used in game development, data analysis, web development and more, offering you an edge in your journey as a programmer.

The practical usage and efficiency of Python inheritance make it a must-have weapon in a Python developer’s arsenal. Let’s fire it up!

CTA Small Image
FREE COURSES AT ZENVA
LEARN GAME DEVELOPMENT, PYTHON AND MORE
ACCESS FOR FREE
AVAILABLE FOR A LIMITED TIME ONLY

Python Inheritance: Basic Usage

Let’s begin by understanding the core terms involved in Python inheritance – Parent class (also known as Base or Superclass) and Child class (also known as Subclass or Derived class).

The Parent class is the class whose properties and methods are inherited. The Child class is the class that inherits those properties and methods. Let’s see this in action with a simple example.

class Parent:
    def __init__(self):
        print("Parent class Constructor")

class Child(Parent):
    def __init__(self):
        super().__init__()
        print("Child class Constructor")

obj = Child()

In the above code, we first define a Parent class with a constructor. The Child class then inherits from the Parent class and calls the Parent class constructor using the super() function. When creating an object of Child class, it invokes the parent’s constructor first, and then the child class constructor.

Python Inheritance: Overriding Methods

Python allows the Child class to modify or completely replace the methods inherited from the Parent class. This concept is known as method overriding. Let’s take a look:

class Parent:
    def show(self):
        print("You are in Parent class")

class Child(Parent):
    def show(self):
        print("You are in Child class")

obj = Child()
obj.show()

In the above example, the show() method in Child class overrides the one inherited from the Parent class. The output of the code will be “You are in Child class”.

Python Inheritance: The use of super()

The super() function in Python is used to call a method from a parent class in the child class. It comes in handy when there is a need to invoke parent method(s) without explicitly stating the parent class’s name. Observe the example below:

class Parent:
    def display(self):
        print("You are in Parent class")

class Child(Parent):
    def show(self):
        super().display()
        print("You are in Child class")

obj = Child()
obj.show()

In the above code, the Child class method show() uses super().display() to call the display method in the Parent class before printing its own message.

Python Inheritance: Multiple Inheritance

Python supports multiple inheritance – a feature where a class can inherit from more than one parent class. Presented below is a simple example:

class Parent1:
    def show1(self):
        print("You are in Parent1 class")

class Parent2:
    def show2(self):
        print("You are in Parent2 class")

class Child(Parent1, Parent2):
    def display(self):
        print("You are in Child class")

obj = Child()
obj.show1()
obj.show2()
obj.display()

In this code snippet, Child class inherits from both Parent1 and Parent2 classes. Hence, an object of Child class can call methods from both the parent classes as can be seen in the example.

Python Inheritance: Multilevel Inheritance

Python also supports multilevel inheritance – a chain of inheritance from a grandparent to parent to child. Let’s illustrate this:

class Grandparent:
    def show_gp(self):
        print("You are in Grandparent class")

class Parent(Grandparent):
    def show_p(self):
        print("You are in Parent class")

class Child(Parent):
    def show_c(self):
        print("You are in Child class")

obj = Child()
obj.show_gp()
obj.show_p()
obj.show_c()

The output from the code snippet above depicts multilevel inheritance where the Child class inherits from Parent class which inherits from Grandparent class.

Python Inheritance: Encapsulation

In Python, inheritance also supports encapsulation, a practice to restrict the access to methods and variables. This can help prevent data from being modified accidentally. Here’s an example:

class Parent:
    def __init__(self):
        self.__secret = "Hidden message"

    def display(self):
        return self.__secret

class Child(Parent):
    pass

obj = Child()
print(obj.display())
#print(obj.__secret) - this statement will raise an AttributeError

In the code above, trying to access __secret directly will result in an error because it’s encapsulated in the Parent class and therefore hidden from outside access. It can only be accessed through a method inside the Parent class.

Where to Go Next: Keep Learning with Zenva

With this understanding of Python Inheritance, you are now equipped to deal with more complex, layered programming tasks. But, your Python journey doesn’t stop here – it has just begun!

Check out our Python Mini-Degree which is a comprehensive array of courses designed to teach Python programming. Known for its simplicity and versatility, Python is an incredibly popular language used across various industries. This Mini-Degree covers multiple topics, including coding basics, algorithms, object-oriented programming, game development, and app development. You get to learn via hands-on projects such as creating games, algorithms and real-world apps.

Whether you’re a beginner starting your journey or an experienced learner aiming to level-up, our courses with interactive lessons, quizzes, and coding challenges cater to a wide array of learners. You get to learn at your own pace, earning certificates upon course completion! Plus, the skills you learn are industry-relevant, enhancing your proficiency and preparing you for success in the job market.

For more options and a broader collection, do visit our Python courses page. The world of Python awaits!

Conclusion

Understanding the concept of inheritance in Python puts you a step closer towards becoming a pro Python developer. With its capacity to simplify your code and make it more efficient, Python inheritance is a powerful tool that can be effectively applied in a myriad of programming domains, including game development, web development, and data analysis.

Remember, the key to mastering Python lies in consistent practice and lifelong learning. Why not kickstart this journey with our comprehensive Python Mini-Degree? Unleash the power of Python and boost your career opportunities with Zenva today!

Did you come across any errors in this tutorial? Please let us know by completing this form and we’ll look into it!

FREE COURSES
Python Blog Image

FINAL DAYS: Unlock coding courses in Unity, Godot, Unreal, Python and more.