Software Training Institute in Chennai with 100% Placements – SLA Institute

Easy way to IT Job

Share on your Social Media

Method Overloading in Python

Published On: December 7, 2023

Method overloading means creating various methods with the same name using different types or parameters. In this case, the method will perform multiple functionalities with the same name. Method overloading is one of the primary concepts in object-oriented programming in Python. In this article, we explain method overloading in Python in detail, along with examples and tested codes to run for your practice.

How is Method Overloading in Python Possible?

In general, Python doesn’t support method overloading. Though it doesn’t show any compile-time errors, the method overloading in Python will be considered using the last defined method. If we try to call the overloaded method using various arguments or parameters, then we get errors at runtime.  Here is an example of creating a class using various methods with the same name but different parameters. 

class mtdovl:

    def Welcome(self, name= None):

        if name is not None:

            print(‘Welcome’ + name)

        else:

            print(‘Welcome’)

obj = mtdovl() # Create an instance

obj.Welcome() # Call the method

obj.Welcome(‘ to SLA’) # Call the method with a parameter

Method overloading allows us to invoke the Welcome method in the code above in two distinct ways. Introduction to Python is a beginner’s guide that helps you understand the Python programming language from scratch.

Now, let’s see another example

class Calc:

    def add(self, x, y):

      print(“x + y = {}”.format(x + y))

    def add(self, x, y, z):

      print(“x + y + z = {}”.format(x + y + z))

zz = Calc()

zz.add(4, 2, 3)

zz.add(4,2)

As you can see from the example above, we built a class that has two overloaded methods—one with two parameters and the other with three. Subsequently, we generated an instance for the Calc class and invoked the add function with various arguments.

Do you want to learn about the key differences between Python 2 and Python 3? Check out our recent article.

The following is the outcome that you will obtain when you run the Python method overloading example mentioned before.

Traceback (most recent call last):

  File “./prog.py”, line 8, in <module>

TypeError: add() missing 1 required positional argument: ‘z’

The add method is expecting another parameter, as you can see by looking at the result above. Python, as was mentioned, only takes into account the most recent specified method.

Get practiced with the frequently asked Python interview questions and answers here.

Implementation of Method Overloading in Python

We must write methods that use default arguments or variable-length arguments to achieve method overloading in Python.

Method Overloading in Python using Default Arguments

class Calc:

   def add(self, x, y, z = 0):

     if z > 0:

         print(“x + y + z = {}”.format(x + y + z))

     else:

         print(“x + y = {}”.format(x + y))

zz = Calc()

zz.add(4, 2, 5)

zz.add(4,2)

As you can see, we use different arguments to invoke the same method (add) in the example above. The output displayed below is what you will get when you run the overloading example Python method mentioned above.

x + y + z = 11

x + y = 6

If you are not aware of jump statements in Python yet, learn about them in our article.

Method Overloading in Python using Variable Length Arguments

As was previously mentioned, method overloading in Python can be accomplished by using variable-length arguments in the method. You can call a method with a different number of parameters if you create one with variables for the length of the arguments.

Here’s an example of how to accomplish method overloading in Python by developing a method with variable-length arguments.

class Calc:

   def add(self, *args):

     result = 10

     for parameter in args:

        result += parameter

        print(“Result: {}”.format(result))

n1 = Calc()

n1.add(100, 200, 300)

n1.add(100,200)

The overloading example in Python above will yield the following result.

Result: 110

Result: 310

Result: 610

Result: 110

Result: 310

This is how, depending on your needs, you can accomplish method overloading in Python. 

Building web applications with Django is simple now. Explore how.

Advantages of Method Overloading in Python

Method overloading in Python helps in

  • Reduced complexities
  • Improved quality of the code
  • Utilized for reusability
  • Easy to access

Bottom Line

We hope this method overloading in Python helps you understand how you can accomplish overloading methods using default arguments and variable-length arguments. 

Explore all the opportunities in Python by enrolling in our basic to advanced level Python training in Chennai at SLA Jobs.

Share on your Social Media

Just a minute!

If you have any questions that you did not find answers for, our counsellors are here to answer them. You can get all your queries answered before deciding to join SLA and move your career forward.

We are excited to get started with you

Give us your information and we will arange for a free call (at your convenience) with one of our counsellors. You can get all your queries answered before deciding to join SLA and move your career forward.