Python对象而言,一般存在三个属性:type 类型, value 值 以及 地址id
1.a == b , 这是一个比较运算符,用于比较两个对象的value(值)是否相同
相同则返回True 否则返回False
2.a is b , 这是一个同一性运算符。用于比较两个对象的物理id。如果相同则返回True
否则返回False (可以用id()查询)
- 数值相同时 a == b 返回True,否则返回False
- 数值相同时 a is b 未必返回True
- Python为了优化效率,内置了小整数对象池和简单字符串对象池。
小整数对象池包括[-5, 256]。这之间的小整数数值相同时在小整数对象池中属于同一对象
即是 a is b 返回True。简单字符串也是如此,对于其他对象则不适用