Skip to main content

MUTABLE AND IMMUTABLE OBJECTS IN PYTHON AND THEIR MEMORY MANAGEMENT

Everything in Python is an object. There are two types of objects in Python



  • Mutable
  • Immutable
Mutable objects are those whose value can be changed after their creation. An example of it is a list.



Immutable objects are those whose value cannot be changed after their creation. A well-known example of this is a tuple.

Mutable objects: lists, sets, dictionaries

Immutable objects: Tuples, integers, floats, strings, frozen sets

Before going deep into this topic, we should know about the id() function in Python.

id() function in python:

This function returns the identity of an object. This is guaranteed to be unique and constant for an object. The id of an object is created when the object is created. See below for examples.

example1:                                                                        

l=[1,2,3]

print(id(l))

Output:

2018064114312

example 2:

x= 10

print(id(x))

Output:

140736328131504


Ok, now let us see some examples of the functionality of mutable and immutable objects.

let us take an example of a list.

l=[1,2,3]

print(id(l))

l.append(5)

print(id(l))

Output:

2018059045576

2018059045576

Here, we can observe that as lists are mutable objects. We can change the value of lists without changing their id.

Now, if we take an example of a tuple, there is no chance of changing their value since it is an immutable object. If we take the example of int, string, which are also immutable, we can change the value of them, but changing their value creates a different id. See the below example.

example1:

x=10

print(id(x))

x=x+10

print(id(x))

Output:

140736328131504

140736328131824

example2:

s="string"

print(id(s))

s=s+"s"

print(id(s))

2018054115200

2018063371320

More on immutable objects:

We cannot change a tuple. But, if a tuple has an immutable object in it, we can change that immutable one in the tuple.

example:

t=(1, 2, [12,3])

t2.append(4)

print(t2)

Output:

(1, 2, [12,3,4])


FOR, VISUALISATION OF THIS CODE IN PYTHON IDLE SEE MY YOUTUBE VIDEO ABOUT THIS: https://youtu.be/tYq5ROASMvs 


FOR LATEST UPDATES OF MY POSTS, SUBSCRIBE TO MY BLOG

FOR LATEST VIDEOS, SUBSCRIBE TO MY YOUTUBE CHANNEL: https://www.youtube.com/channel/UCPnw9O8cvhX9mS195imI8Sw

















Comments

Popular posts from this blog

CHATBOT WITH SPEECH RECOGNITION AND PYTTSX3 USING PYTHON

NOTE: VIEW THIS POST IN DESKTOP SITE FOR THE BEST EXPERIENCE Hello guys. Welcome to my blog. Here I will explain to you how to create a chatbot that has speech as it’s both input and also output. So, let us get started. In this tutorial, I am using some of the libraries in Python like SpeechRecognition, Pyaudio, Chatterbot et cetera. I am going to explain to you how to install these libraries and work with them one by one separately and at last how to integrate them. SPEECH TO TEXT At first, you have to install the Speech Recognition library. You should not use the Python3.7 version because it does not support speech recognition. I am using a 3.6 version for this tutorial. Now, you should install the speech recognition library from the command prompt. Use the following command. pip3.6 install SpeechRecognition Now, you should install PyAudio. First, you have to find the version of your Python and also the configuration of your machine. Open your cmd and type p...

LENGTH OF LONGEST VALID SUBSTRING

GIVEN A STRING OF PARENTHESIS, PRINT THE LENGTH OF THE LONGEST BALANCED SUBSTRING . FOR EXAMPLE: GIVEN,                1.  ()() ---> 4                 2.  ()())()()() ---> 6  Brute Force Approach:   It is to find all the substrings, and check whether they are balanced or not, and simultaneously updating the result if we find a larger valid substring than the previous one. But, this takes the time of O(N^3), since finding all the substrings take O(N^2), and for each substring, to find whether it is a valid substring, it takes a time of O(N), so this constitutes a total of O(N^3).  USING STACK:  In this approach, we will maintain a stack to store the indices of the traversed opening brackets i.e., '('. [YOU WILL KNOW THE REASON SOON, KEEP READING THE POST].  And a variable res , to store the length of the longest substring known till now....

RECOGNITION OF HANDWRITTEN DIGITS(MNIST DATA) PART ONE USING PYTORCH

HELLO GUYS, IN THIS BLOG POST I WANT TO SHOW THE BASIC INTRO TO IDENTIFICATION OF HANDWRITTEN DIGITS USING PYTORCH MNIST DATA. MNIST DATA IS THE COLLECTION OF HANDWRITTEN DIGITS. MNIST CONTAINS 70,000 HANDWRITTEN DIGITS, 60,000 FOR TRAINING AND REMAINING 10,000 ARE FOR TESTING.  THE  IMAGES ARE GRAYSCALE AND 28x28 PIXELS. WE CAN DOWNLOAD THE DATASET USING THE CODE BELOW. Here, the parameters batch_size is kept to 64 so that the training images are grouped into 64 each and shuffle is kept to TRUE, such that each time we run the code it shuffles the data and returns an iterable with new groups of batch_size. As the trainloader is iterable, we are iterating through it and collecting the first batch of images and it's corresponding labels into images and labels respectively. Now, run the above code and see the output. you will see something like this. torch.Size([64, 1, 28, 28]) torch.Size([64])  It shows that there are 64 images with grayscale an...