×

Python Tutorial

Python Basics

Python I/O

Python Operators

Python Conditions & Controls

Python Functions

Python Strings

Python Modules

Python Lists

Python OOPs

Python Arrays

Python Dictionary

Python Sets

Python Tuples

Python Exception Handling

Python NumPy

Python Pandas

Python File Handling

Python WebSocket

Python GUI Programming

Python Image Processing

Python Miscellaneous

Python Practice

Python Programs

Python Function Calls: Call By Value and Reference

By IncludeHelp Last updated : December 08, 2024

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]

Comments and Discussions!

Load comments ↻





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