Python id() Function

The Python id() function returns the “identity” of the object. The identity of an object is an integer, which is guaranteed to be unique and constant for this object during its lifetime. Two objects with non-overlapping lifetimes may have the same id() value. In CPython implementation, this is the address of the object in memory.

Python id()

Python cache the id() value of commonly used data types, such as string, integer, tuples etc. So you might find that multiple variables refer to the same object and have the same id() value if their values are same. Let’s check this out with an example.

# integers
a = 10
b = 10
c = 11
d = 12

print(id(a))
print(id(b))
print(id(c))
print(id(d))

Output:

4317900064
4317900064
4317900096
4317900128

Notice that id() value of ‘a’ and ‘b’ are the same, they have the same integer value. Let’s see if we get the similar behavior with string and tuples too?

# tuples
t = ('A', 'B')
print(id(t))

t1 = ('A', 'B')
print(id(t1))

# strings
s1 = 'ABC'
s2 = 'ABC'
print(id(s1))
print(id(s2))

Output:

4320130056
4320130056
4320080816
4320080816

From the output, it’s clear that Python cache the strings and tuple objects and use them to save memory space.

Caching can work only with immutable objects, notice that integer, string, tuples are immutable. So Python implementation can use caching to save memory space and improve performance.

We know that dictionary is not immutable, let’s see if id() is different for different dictionaries even if the elements are same?

# dict
d1 = {"A": 1, "B": 2}
d2 = {"A": 1, "B": 2}
print(id(d1))
print(id(d2))

Output:

As we thought, dict objects are returning different id() value and there seems no caching here.

Python id() for Custom Objects

Let’s see a simple example of getting id() value for a custom object.

class Emp:
    a = 0


e1 = Emp()
e2 = Emp()

print(id(e1))
print(id(e2))

Output:

Summary

Python id() value is guaranteed to be unique and constant for an object. We can use this to make sure two objects are referring to the same object in memory or not.

Create a Free Account

Register now and get access to our Cloud Services.

Posts you might be interested in:

centron Managed Cloud Hosting in Deutschland

Dimension Reduction – IsoMap

Python
Dimension Reduction – IsoMap Content1 Introduction2 Prerequisites for Dimension Reduction3 Why Geodesic Distances Are Better for Dimension Reduction4 Dimension Reduction: Steps of the IsoMap Algorithm5 Landmark Isomap6 Drawbacks of Isomap7…
centron Managed Cloud Hosting in Deutschland

What Every ML/AI Developer Should Know About ONNX

Python
What Every ML/AI Developer Should Know About ONNX Content1 Introduction2 ONNX Overview3 Prerequisites for ML/AI Developer4 ONNX in Practice for ML/AI Developer5 Conclusion for What Every ML/AI Developer Should Know…