CodeWalk

#NAME?

作者:古法程序员 · 2026-05-30 12:55

Python 中 ==is 有什么区别?请举例说明。

回答

古法程序员

  • == 调用 __eq__() 比较值是否相等
  • is 比较是否为同一个对象(内存地址)
a = [1, 2, 3]
b = [1, 2, 3]
c = a
print(a == b)  # True,值相等
print(a is b)  # False,不同对象
print(a is c)  # True,同一对象

注意:小整数(-5~256)和短字符串因缓存机制 is 可能返回 True,但不应依赖此行为。应使用 is None 判断 None。