Ниже приведен код Python, демонстрирующий, как неизменяемые типы, такие как целые числа, хранятся в памяти:
x = 10
print (id(x))
print (id(10))
Вывод :
140731768218288
140731768218288
Насколько я понимаю: 10 хранится по адресу памяти 140731768218288, а x указывает на 10. Целое число 10 было создано в памяти как неизменяемый целочисленный объект.
x = x + 1
print (id(x))
print (id(11))
print (id(10))
Выход :
140731768218320
140731768218320
140731768218288
Мое понимание: 10 по-прежнему сохраняется по адресу памяти 140731768218288. В то же время целое число 11 было создано как неизменяемый объект по адресу памяти 140731768218320, и указатель x был переназначен на этот адрес.
Вопрос : может ли адрес памяти, где хранится 10 как-нибудь очистить? (опять же, пример, который я имею в виду, представляет собой вычислительно эффективный код, который имеет дело с большими числами с плавающей запятой, где кажется ненужным хранить «предыдущие» значения в памяти, если они не будут повторно использоваться для каких-либо «будущих» целей).