Счетчик ссылок в 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,и посмотреть будет ли объект снова один для двух идентификаторов.Как оказалось-нет.Видимо такая штука работает при первой первом связывании идентификатора с объектом.


Ответы (0 шт):