Identity vs. Equality in Python
10 months ago
- #Python
- #Programming
- #Identity vs Equality
- Python中'is'和'=='的区别:'=='检查内容是否相等,而'is'检查对象标识(内存中是否为同一对象)
- 示例说明:两个内容相同的对象可能不是同一对象(如列表[1,2,3])
- 对单例值(None/True/False)使用'is'进行身份验证,比较值时应使用'=='
- 不可变类型(如整数/字符串)可能存在对象缓存,导致'is'结果不一致(如5 is 5成立但1000 is 1000不成立)
- 空容器(如[])是独立对象,而空元组(())可能因缓存复用同一对象
- 最佳实践:值比较用'==',身份检查用'is',避免对字面量使用'is'(除非必要)
- 相等性与同一性的区分映射了莱布尼茨定律等深层哲学概念