【发布时间】:2015-07-01 17:08:45
【问题描述】:
>>> a = 300
>>> b = 300
>>> id(a)
34709776
>>> id(b)
34709824
在上述情况下,a 和 b 内存位置不同
>>> (a, b) = 300, 300
>>> id(a)
34709632
>>> id(b)
34709632
但是当使用元组进行分配时,a&b 的内存位置是相同的。为什么?
【问题讨论】:
-
因为 -5 - 256 是最常用的数字。在
(a, b) = 300, 300中,您会看到窥视孔优化,其中使用多个分配重用对象。a, b = 300, 300也会这样做,实习是有成本的,所以对每个号码都这样做是不切实际的 -
感谢@PadraicCunningham 我清楚了内存分配,但是字符串对象缓存呢?
标签: python memory memory-management