python内置整数对象

时间:2016-09-22 13:40:27

标签: python

我读了一篇文章,python保留了一些数字对象以获得更好的性能。例如:

x = 3
y = 3
print(id(x))
print(id(y))

给出相同的值,这意味着x和y引用完全相同的对象。文章建议保留的数字对象大约在1~100范围内。

所以我测试了以下代码以获得确切的范围:

for i in range(-1000,1000):
    x = int(str(i))
    y = int(str(i))
    if str(id(x)) == str(id(y)):
        print(i)

结果很奇怪:打印出-5~256。

我想知道这两个魔法数字是如何产生的以及为什么它们被使用。另外,这两个值会在不同的环境中发生变化吗? 谢谢!

1 个答案:

答案 0 :(得分:1)

256是2的幂,小到足以让人们在该范围内使用数字。

-5我不太确定,也许是特殊的价值观?

相关:What's with the Integer Cache inside Python?

这句话也是一句智慧:

  

这是一个实施细节,不要依赖它发生或不发生