Я предположил, что id()
неизменяемых типов данных в python должны быть одинаковыми, если используется одно и то же значение.
Но это не удается, если я храню десятичную и шестнадцатеричную версию одного и того же целого числа:
In [1]: a = 0x1234
In [2]: b = 4660
In [3]: a == b
Out[3]: True
In [4]: id(a) == id(b)
Out[4]: False
In [5]: id(a)
Out[5]: 140579138155600
In [6]: id(b)
Out[6]: 140579138154736
Почему?
Речь идет не о преобразовании, интерпретатор Python создает объект каждый раз, когда вы назначаете большое целое число, поэтому у них разные объекты. числа от -1 до 255 создаются при запуске интерпретатора, и они имеют одинаковые id
во всей программе.