Верно ли, что все неизменяемые объекты в Python представлены в виде единых экземпляров?
В Python есть два вида проверок: равенство (==
) и идентичность (is
).
Рассмотрим код ниже:
a = 10
b = 10
print(a == b) # True, потому что обе переменные ссылаются на объекты с одинаковым значением
print(a is b) # True ???
В части print(a is b)
происходит сравнение ссылок a
и b
. Поскольку результат оператора идентичности равен True
, получается, что обе переменные имеют одинаковые ссылки.
Поскольку любые переменные, которым мы присвоим какой-то неизменяемый объект, имеют одинаковую ссылку на этот объект, значит ли это, что все неизменяемые объекты представлены в виде единых экземпляров в памяти?