【发布时间】:2019-11-09 13:30:27
【问题描述】:
简单来说,为什么这段代码返回 False 而不是 true:
a = 10
print(id(a) is id(a)) # why false?
id() 返回整数,相同的整数变量指向相同的整数对象。为什么它返回false呢?有什么区别:
a = 10
b = 10
print(a is b) # it returns True
感谢您的解释。
【问题讨论】:
-
“和相同的整数变量指向相同的整数对象”——是什么让你这么认为?想一想:这将如何在 Python 解释器中有效地实现?它可能需要缓存数十亿个对象……代价是千兆字节的内存。