Variable Assignment in Python

author-image  By Dhiraj, 16 March, 2019   0K

There are 2 types of variable in Python - Mutable and Immutable. In this tutorial, we will discuss about different variable assignment, mutable and immutable variable assignment.

Immutable Variable Assignment

What happens when we assign an integer to a variable such as x = 50. In this case, Python creates an int object with a value of 50 and assigns an object reference with a name x. Now, when we assign x with another value such as 100 then the object actual value i.e. 50 is not changed as int is immutable in Python. Here, Python creates another immutable object with a value 100 and the reference of x changes to 100 and the object with vaue 50 is lost and collected by Python garbage collection.

Now, when we assign another variable y to x like y = x then the object reference of object 100 is assignedd to y too. Now when we assign x to 200 such as x = 200 then the reference of the object 200 is assigned to x but the reference of object 100 is still asssigned to y and hence no object is garbage collected.

To verify the above concept, let us use inbuilt function id() which returns a unique identifier for an object.

x = 50

x = 100
print(id(x))  # reference of x changes 

y = x  # same reference as x

x = 200
print(id(x))  # reference of x changes
print(id(y))  # y is still referencing to previous reference of 100

Mutable Variable Assignment

As we know list in Python is mutable. Hence, if 2 variables are referencing the same list and if we change the value of the list, still the variable references will not be changed as no new list is created instead the object is modified as list is immutable. The test x is y returns True as both the variable is referencing to same object.

x = [12, 45, 100]
y = x


x[1] = 200

print(x is y)
[12, 45, 100]
[12, 200, 100]
[12, 200, 100]

Note: Assigning to new variable does not copy the value instead the reference is only copied.


In this tutorial, we learnt about different variable assignment, mutable and immutable variable assignment.

About The Author


Further Reading on Python

1. Python Range Function

2. Python Data Types

3. Introduction To Python

4. Different Python Operators

5. Python Flow Control

6. Python Functions

7. Python Classes