可能重复:
Python “is” operator behaves unexpectedly with integers
>>>a=123
>>>b=123
>>>a is b
True
>>>id(a)==id(b)
True
我的问题是,为什么id(a)与id(b)相同?。< / p>
答案 0 :(得分:3)
通常小整数引用内存中相同的缓存对象以提高效率。
答案 1 :(得分:2)
int
被缓存。这是一个无关紧要的实现细节,因为int
无论如何都是不可变的。
答案 2 :(得分:1)
变量
a and b
两者都是对id为唯一的对象123的引用。
当您将相同值 123 分配给两个差异变量 a 和 b 时,
然后将同一个对象 123 分配给变量 a 和 b ,但对该对象的引用计数会增加您的案例refrecnce count对象 123 是两个