Если вы попытались сделать, например,
print(str(id(id(a))) + " " + str(id(id(a))))
In [54]: print(str(id(id(a))) + " " + str(id(id(a))))
2460780951888 2460780951888
In [55]: print(str(id(id(a))) + " " + str(id(id(a))))
2460780951472 2460780951472
In [56]: print(str(id(id(a))) + " " + str(id(id(a))))
2460782062320 2460782062320
In [57]: print(str(id(id(a))) + " " + str(id(id(a))))
2460780951888 2460780951888
In [58]: print(str(id(id(a))) + " " + str(id(id(a))))
2460782473392 2460782475664
, который бы каждый раз возвращал новый идентификатор для большого целого числа
Как упоминает @thebjorn, большие целые числа не кэшируютсяВ интерпретаторе Python все время остаются живыми только целые числа от -5 до 256 (в реализации CPython).
Каждый раз, когда большое целое является ссылкой, для него создается новый объект, тогда как для маленького целого числа тот же объектпродолжает использоваться (в качестве оптимизации), однако это не гарантируется, чтобы оставаться верным во всех реализациях Python.