Python Function Calls: Call By Value and Reference

Python function calling types: In this tutorial, we will learn about the different function calls in Python (call by value and call by reference) with the help of examples. By Pankaj Singh Last updated : December 30, 2023

There are following types of Python function calls:

  1. Call by value
  2. Call by reference

1) Call by value

When, we call a function with the values i.e. pass the variables (not their references), the values of the passing arguments cannot be changes inside the function.

Example: Call a Python function using call by value

# call by value 
def change(data):
    data=45
    print("Inside Function :",data)

def main():
    data=20
    print("Before Calling  :",data)
    change(data)
    print("After  Calling  :", data)

if __name__=="__main__":main()

Output

Before Calling  : 20
Inside Function : 45
After  Calling  : 20

2) Call by reference

When, we call a function with the reference/object, the values of the passing arguments can be changes inside the function.

Example 1: Calling function by passing the object to the class

class mydata:
    def __init__(self):
        self.__data=0
    def setdata(self,value):
        self.__data=value
    def getdata(self):
        return self.__data

def change(data):
    data.setdata(45)
    print("Inside Function :",data.getdata())

def main():
    data=mydata()
    data.setdata(20)
    print("Before Calling  :",data.getdata())
    change(data)
    print("After  Calling  :", data.getdata())

if __name__=="__main__":main()

Output

Before Calling  : 20
Inside Function : 45
After  Calling  : 45

Example 2: Calling function by passing the reference to the list

def change(data):
    data[1]=25
    print("Inside Function :",data)

def main():
    data=[10,20,30,40,50]
    print("Before Calling  :",data)
    change(data)
    print("After  Calling  :", data)

if __name__=="__main__":main()

Output

Before Calling  : [10, 20, 30, 40, 50]
Inside Function : [10, 25, 30, 40, 50]
After  Calling  : [10, 25, 30, 40, 50]

Python Tutorial

Comments and Discussions!

Load comments ↻





Copyright © 2024 www.includehelp.com. All rights reserved.