这里是一个例子:
a = 2
b = 2
print a is b # True
为什么会这样? a和b是不是不同的对象?
我知道“ is”运算符用于检查python中两个对象是否相同。例如,对于列表l1 = []
和l2 = []
,它返回False
,因为它们是不同的对象。但是,对于如上所述的整数比较,它返回True
表示两个对象相等。当我使用id()
函数进行检查时,它们实际上具有相同的ID。为什么?
Edit:Python中的Integer Cache有什么用? What's with the Integer Cache inside Python?是答案,但该问题应保留在注释中。