元组内存分é…和正常å˜é‡å†…存分é…之间的区别

时间:2015-07-01 17:08:45

标签: python memory memory-management

>>> a = 300
>>> b = 300
>>> id(a)
34709776
>>> id(b)
34709824

在上述情况下,aå’Œb内存ä½ç½®ä¸ç›¸åŒ

>>> (a, b) = 300, 300
>>> id(a)
34709632
>>> id(b)
34709632

但是当使用元组存储ä½ç½®è¿›è¡Œåˆ†é…时,a& b都是相åŒçš„。为什么呢?

1 个答案:

答案 0 :(得分:1)

这是我为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,我的猜测是这ç§åˆ†é…çš„æŸç§ä¼˜åŒ–。