Python中对象包含的三个基本要素,分别是:id(身份标识)、type(数据类型)和value(值)。
is比较的是id,==比较的是value。
在比较对象为:数值型(int)和字符串型的时候,is和==的结果相同,该是True的时候是True,该是False的时候是False。
当比较对象为其他类型时(包含float),==的结果是True,is的结果是False,或反过来。
特殊的是,当数字不在[-5,257)这个范围的时候,即使value相等,is的结果会是False。当字符串超过一个范围也有同样的现象。
事实上Python 为了优化速度,使用了小整数对象池,避免为整数频繁申请和销毁内存空间。字符串也有类似缓冲池。