Как получить адрес объекта в памяти в Python? Как оператор is понимает, что два объекта ссылаются на одно и то же?

В Python получить адрес объекта в памяти можно с помощью встроенной функции id().

Короткий ответ

Что ответить на собеседовании

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

Подробный разбор

Ответ с пояснениями

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

Пример:

obj = []
print(id(obj))  # Выведет адрес объекта в памяти

Оператор is сравнивает два объекта по их идентификаторам, то есть по результату id(). Если id(a) == id(b), значит a is b вернёт True, то есть обе переменные ссылаются на один и тот же объект в памяти.

Таким образом, is проверяет именно тождественность объектов, а не равенство по значению.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее