Разве операция присваивания не должна всегда создавать привязку между объектом и объектом?
По-видимому, это происходит для списков, но не для скалярного int. В приведенном ниже коде изменение значения новой переменной d
приводит к изменению значения исходной переменной c
.
c = [1,2]
d = c
d[0] = 3
print(d)
>>> [3,2]
print(c)
>>> [3,2]
Ожидается указанное выше поведение. Но в приведенном ниже коде изменение значения новой переменной b
не приводит к изменению значения исходной переменной a
. т. е. не должен ли вывод print(a)
быть 2?
a = 3
b = a
b = 2
print(b)
>>> 2
print(a)
>>> 3