Как изменяется значение переменной после копирования и инкремента

y останется 4567, а x станет 4568. Целые числа неизменяемы: x += 1 создаёт новое значение и перепривязывает только x.

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

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

y останется 4567, а x станет 4568. Целые числа неизменяемы: x += 1 создаёт новое значение и перепривязывает только x.

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

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

Условие

Нужно вычислить, какое значение получит переменная y после выполнения приведённого кода, и пояснить, почему значение переменной x сохраняется или не сохраняется в y.

x = 4567
y = x
x += 1
# Каково значение y?

Ответ

y останется 4567, а x станет 4568. Целые числа неизменяемы: x += 1 создаёт новое значение и перепривязывает только x.

После y = x оба имени ссылаются на целое число со значением 4567. Операция увеличения не меняет этот объект, а связывает x с результатом сложения.

assert y == 4567
assert x == 4568

Здесь не требуется отдельного копирования числа. Такое поведение отличается от изменяемых контейнеров: например, list += [...] обычно изменяет сам список и будет видно через другие ссылки на него. Поэтому действие += зависит от типа объекта, а не всегда означает исключительно переприсваивание.

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

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

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

Подробнее