Skip to content

Python id() Function

How the Python id() function works, including its syntax, parameters, and examples showing how to get an object's unique memory address for identity comparison.

The id() method returns a unique integer (identity) of a passed argument object.

Syntax

id(object)

id() Parameters

Python id() function parameters:

Parameter Condition Description
object Required Any Python object whose identity is required. It can be a class, variable, list, tuple, set, etc.

id() Return Value

Python id() function returns the identity of the object (which is a unique integer for a given object)

Examples

Example 1: Basic Examples

print("id of 5 =", id(5))

a = 5
print("id of a =", id(a))

b = a
print("id of b =", id(b))

c = 5.0
print("id of c =", id(c))

output

id of 5 = 136596395200712
id of a = 136596395200712
id of b = 136596395200712
id of c = 136596384063184

Notice that we have used the id() function with variables a, b and c and got their corresponding ids: the id() function returns the integer 136596395200712 for both a = 5 and 5. This because both values are the same, and so the id is also the same.

Example 2: id() function with Classes and Objects

class Food:
    banana = 15

my_food = Food()

print(id(my_food))

output

132413969081424

Example 3: id() function with Sets (Mutable Objects)

d1 = {"A":  1, "B":  2}
d2 = {"A":  1, "B":  2}

print(id(d1))  # Output: Different from id(d2) because dictionaries are mutable
print(id(d2))

output

134716606985664
134716607036672

Example 4: id() function with Tuples (Immutable Objects)

t1 = (1,  2,  3)
t2 = (1,  2,  3)

print(id(t1))  # Output: Same as id(t2) because they are the same object
print(id(t2))

output

139212483455616
139212483455616

Example 5: id() with Sets

colors = {"red", "yellow", "blue", "green"}

print("The id of the colors set is", id(colors))

output

The id of the colors set is 133643641542400

Example 6: Different Identities for Different Instances

class MyClass:
    pass

obj1 = MyClass()
obj2 = MyClass()

print(id(obj1))  # Output: Unique id for obj1
print(id(obj2))  # Output: Unique id for obj2

output

139946208764944
139946208765008

Example 7: Compare Two IDs using is keyword

To check if two objects have same id, use is keyword.

For example, check if 'x' and 'y' have the same id (i.e. if they point to the same object)

x = 42
y = x
print(x is y)   # Output: True

output

True

Particular exceptions with id in Python

In Python, every object has its own unique id. However, for the sake of optimization, there are some exceptions.

Some objects have same id (actually one object with multiple pointer), like:

  • Small integers between -5 and 256
    • Python optimizes memory usage by caching a range of small integers, from -5 to 256. When you use these numbers, Python will always refer to the same memory address. For example, id(-5) and id(256) will give you the same ID because they are both cached
  • Small interned strings (usually less than 20 character)
    • Python creates a pool of immutable objects called "interned strings". When you create a string that is already in this pool, Python will return a reference to the existing object rather than creating a new one. This applies to strings of length 0 to 20 characters. So, if you create a string with the same content as an existing interned string, it will have the same ID.
print(30 is 20+10)      # Output: True
print('aa'*2 is 'a'*4)  # Output: True

output

True
True
Navigation