Счетчик ссылок в python
Вариант 1:
import sys
name=4.5555
name2=4.5555
print(sys.getrefcount(name)) # 5
Вариант 2:
import sys
name=4.5555
name2=4.5555
name+=1
print(name2)
print(sys.getrefcount(name)) # 2
Почему в первом варианте счетчик ссылок равен 5 а во втором 2?
Неужели в первом варианте не создается новой переменной,а python ищет уже существующую и присваевает переменной ссылку на нее?
И получается во втором примере происходит как и в первом варианте,только выделение памяти под name2 происходит при какой либо операции над этим объектом?
P.S. Дополнил второй вариант и попробовал увеличить обе переменные на 1,и посмотреть будет ли объект снова один для двух идентификаторов.Как оказалось-нет.Видимо такая штука работает при первой первом связывании идентификатора с объектом.