, а адрес на это значение? Какой в этом смысл? Буду благодарен.
Если вы про int и str, то это в целях оптимизации сделано. Подробнее можно у Лутца почитать.
>>> foo = 1
>>> boo = 1
>>> foo is boo
True
>>> id(foo)
22850664
>>> id(boo)
22850664
>>> a = "a"
>>> b = "a"
>>> id(a)
139677204813264
>>> id(b)
139677204813264
>>> a = "a" * 1111
>>> b = "a" * 1111
>>> id(a)
23753744
>>> id(b)
23754912
Как видим, маленькие значения закешировались, а вот переменные содержащие большие строки уже ссылаются на разные области памяти.