Home »
Python
Python Function Calls: Call By Value and Reference
By IncludeHelp Last updated : December 08, 2024
There are following types of Python function calls:
- Call by value
- 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]