Что делает функция id() в Python?

«Что делает функция id() в Python?» — вопрос из категории Python, который задают на 26% собеседований Data Scientist / ML Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Функция id(object) возвращает уникальный целочисленный идентификатор переданного объекта. В реализации CPython этот идентификатор соответствует адресу объекта в памяти.

Основные свойства:

  • Уникальность: Идентификатор уникален и постоянен для объекта в течение всего времени его жизни.
  • Сравнение: Оператор is проверяет, ссылаются ли две переменные на один и тот же объект в памяти, что эквивалентно сравнению их id().

Пример:

list_a = [1, 2, 3]
list_b = [1, 2, 3]
list_c = list_a  # list_c — это ссылка на тот же объект, что и list_a

print(id(list_a))  # Например, 140245678945600
print(id(list_b))  # Другой id, хотя значения одинаковы
print(id(list_c))  # Тот же id, что и у list_a

print(list_a is list_b)  # False (id разные)
print(list_a is list_c)  # True (id одинаковые)

Важно: Для небольших целых чисел и строк Python может использовать механизм интернирования (interning), когда одинаковые значения могут иметь один id, но на это не стоит полагаться в логике программы.