Для чего используется функция id() в Python

Ответ

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

Основное назначение — проверка идентичности объектов, то есть определение, ссылаются ли две переменные на один и тот же объект в памяти.

Ключевые моменты:

  1. Идентичность против равенства: id(a) == id(b) (или идиоматично a is b) проверяет, что a и b — это один и тот же объект, в то время как a == b проверяет, что объекты имеют одинаковое значение.
  2. Отладка: Помогает отслеживать жизненный цикл объектов, особенно при работе с изменяемыми (mutable) типами данных, чтобы понять, был ли объект изменен на месте или создан новый.

Пример:

# Изменяемый тип данных (список)
list_a = [1, 2, 3]
list_b = list_a  # list_b теперь ссылается на тот же объект, что и list_a
list_c = [1, 2, 3]  # list_c — это новый объект с тем же содержимым

# Проверка идентичности
print(f"list_a is list_b: {list_a is list_b}") # True
print(f"id(list_a) == id(list_b): {id(list_a) == id(list_b)}") # True

# Проверка равенства
print(f"list_a == list_c: {list_a == list_c}") # True

# А вот идентичность у них разная
print(f"list_a is list_c: {list_a is list_c}") # False
print(f"id(list_a) == id(list_c): {id(list_a) == id(list_c)}") # False