Skip to main content

Python id() Function

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

note

Since ID is an assigned memory address, it can be different in different systems. So, the output on your system can be different.

Syntax

id(object)

id() Parameters

Python id() function parameters:

ParameterConditionDescription
objectRequiredAny 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

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

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

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

c = 5.0
# id of c
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()

# id of the object my_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"}

# id() of the set colors
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
note

is keyword is used for identity (id) comparison, while == operator is used for equality (value) comparison.

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