Как вы можете проверить исходный файл intobject.c , Python кэширует мелкие целые числа для эффективности. Каждый раз, когда вы создаете ссылку на небольшое целое число, вы ссылаетесь на кэшированное маленькое целое число, а не на новый объект. 257 не является маленьким целым числом, поэтому он вычисляется как другой объект.
Для этого лучше использовать ==
.
Вы можете прочитать об этом здесь: http://research.swtch.com/2010/03/zip-files-all-way-down.html
Здесь вы найдете r.zip , который содержит себя.