is 与 == 的区别
这是一个关于底层机制的经典误区。
== (Equality): 比较两个对象的值是否相等。
is (Identity): 比较两个对象是否指向内存中的同一个地址。
容易犯错的情况:
Python
a = [1, 2, 3]
b = [1, 2, 3]
print(a == b) # True
print(a is b) # False
注意:Python 对小整数(-5 到 256)有内存池缓存
x = 256
y = 256
print(x is y) # True
z = 257
w = 257
print(z is w) # False (在某些解释器或交互式环境下)