Ped*_*dro 5 python python-2.7 python-3.x
这是一个关于Python缓存机制的系列问题。
首先,我读了为什么 (0-6) 是 -6 = False?发现Python中有一个叫做整数对象池的东西,然后我尝试了一些其他情况,发现了一个超出我理解的现象
In : a = 257; b = 257; id(a) == id(b)
Out: False
In : a, b = 257, 257; id(a) == id(b)
Out: True
In : a, b = (1,), (1,); id(a) == id(b)
Out: False
Run Code Online (Sandbox Code Playgroud)
正如该问题的答案提到的,257不在小整数范围内,因此当您分配一个值为257的新变量时,应该有一个新对象,但a,b = 257, 257显示True。所以我假设这种分配方法会在初始化期间为它们分配两个相同的ID,但第三种情况证明这种假设是错误的。
您能否解释一下为什么这种分配方式对于非缓存整数(不在 [-5,256] 中)和元组有不同的行为?
| 归档时间: |
|
| 查看次数: |
328 次 |
| 最近记录: |