x = 42 y = 42 x == y #True x is y #True
В этом взаимодействии X и Y должны быть == (одинаковое значение), но не являются (одним и тем же объектом), потому что мы запускали два разных литерала. Поскольку маленькие целые числа и строки кэшируются и используются повторно, они говорят нам, что они ссылаются на один и тот же единственный объект.
На самом деле, если вы действительно хотите посмотреть под капотом, вы всегда можете спросить Python, сколько ссылок есть объект, использующий функцию getrefcount в стандартном модуле sys, возвращает счетчик ссылок объекта. Это поведение отражает один из многих способов, которыми Python оптимизирует свою модель для скорости выполнения.
blockquote>