Что происходит в памяти Python при присваивании a = 5?

Имя a связывается с объектом целого числа 5. Присваивание не создаёт отдельную изменяемую ячейку с копией числа: имя хранит ссылку на объект, который для константы может уже существовать.

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

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

Имя a связывается с объектом целого числа 5. Присваивание не создаёт отдельную изменяемую ячейку с копией числа: имя хранит ссылку на объект, который для константы может уже существовать.

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

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

Имя a связывается с объектом целого числа 5. Присваивание не создаёт отдельную изменяемую ячейку с копией числа: имя хранит ссылку на объект, который для константы может уже существовать.

В CPython небольшие целые часто переиспользуются, поэтому новый объект при каждом таком присваивании не обязателен. Точное место привязки зависит от области: локальная переменная функции и имя модуля хранятся по-разному. Если затем выполнить a = 6, изменится привязка имени, а не содержимое объекта 5, поскольку int неизменяем. Не следует путать эту семантику языка с конкретным адресом памяти или числом выделений в определённой версии интерпретатора.

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

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

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

Подробнее