What is Pass by Reference In Python?

Pass by reference means that you have to pass the function (reference) to a variable, which means that the variable already exists in memory. 

Here, the variable( the bucket) is passed into the function directly. The variable acts as a package that comes with its contents (the objects).

In the above code image, both “list” and “my_list” are the same container variable and therefore refer to the same object in the memory. Any operation performed by the function on the variable or the object will be directly reflected by the function caller. For instance, the function could completely change the variable’s content, and point it at a completely different object: 

Also, the function can reassign the contents of the variable with the same effect as below:

To summarize, in pass-by-reference, the function and the caller use the same variable and object.

Pass by Reference In Python Example

In this example, the function modify_list takes a list by reference. The function adds the string “Geeks” to the passed list inside the function and prints it. Since lists are mutable data types, the changes made to the list inside the function are also reflected outside the function as you can see in the output.

Python3




def modify_list(x):
    x.append("Geeks")
    print("Inside function:", x)
  
my_list = ['Geeks', 'for']
modify_list(my_list)
print("Outside function:", my_list)


Output

Inside function: ['Geeks', 'for', 'Geeks']
Outside function: ['Geeks', 'for', 'Geeks']

Pass by reference vs value in Python

Developers jumping into Python programming from other languages like C++ and Java are often confused by the process of passing arguments in Python. The object-centric data model and its treatment of assignment are the causes of the confusion at the fundamental level.

In the article, we will be discussing the concept of how to pass a value by reference in Python and try to understand pass-by-reference examples in Python.

Table of Content

  • Pass by Value and Pass by Reference in Python
  • The variable is not the object
  • What is Pass by Reference In Python?
  • What is Pass by Value In Python?

Similar Reads

Pass by Value and Pass by Reference in Python

You might want to punch something after reading ahead, so brace yourself. Python’s argument-passing model is neither “Pass by Value” nor “Pass by Reference” but it is “Pass by Object Reference”....

The variable is not the object

...

What is Pass by Reference In Python?

Here “a” is a variable that points to a list containing the elements “X” and “Y”. But “a” itself is not a list. Consider “a” to be a bucket that contains the object “X” and “Y”....

What is Pass by Value In Python?

Pass by reference means that you have to pass the function (reference) to a variable, which means that the variable already exists in memory....