В Python маленькие целые числа (обычно в диапазоне от
-5 до 256) кэшируются и повторно используютсяЭто значит, что они сохраняются в памяти, и каждый раз, когда вы создаёте целое число в этом диапазоне, Python указывает на одно и то же местоположение в памяти, вместо того чтобы создавать новый объект
И если с
pow(1, 2) это срабатывает, т.к. результат 1, то в случае с pow(10, 20) уже нет — результат выполнения этой функции равняется 1e+20, т.е. сильно больше 256