>>> a = 300
>>> b = 300
>>> id(a)
34709776
>>> id(b)
34709824
在上述情况下,a 和 b 内存位置不同
>>> (a, b) = 300, 300
>>> id(a)
34709632
>>> id(b)
34709632
但是当使用元组分配时,a&b 的内存位置是相同的。为什么?
最佳答案
这是我得到的 a, b = 300, 300
:
2 0 LOAD_CONST 2 ((300, 300))
3 UNPACK_SEQUENCE 2
6 STORE_FAST 0 (a)
9 STORE_FAST 1 (b)
12 LOAD_CONST 0 (None)
15 RETURN_VALUE
至于正常的 a = 300; b = 300
Python 使用两个单独的 LOAD_CONST
,我猜这是对这种赋值的某种优化。
关于python - 元组内存分配和普通变量内存分配的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31167606/