http://www.cnblogs.com/lolein... 下面是这个文章里面所演示的代码,
>>> a=1
>>> b=1
>>> id(a)
40650152
>>> id(b)
40650152
>>> a=2
>>> id(a)
40650140
我有点费解的就是,按道理a和b完全就不是同一个变量,那么理论上他们无论值是什么,都应该是放在两个不同的内存空间啊,为什么他们相等的时候就放在了同一个内存空间呢?难道是python的运行时环境会自动判断他们的值,如果相同就放到同一个内存空间,为的是节省内存占用吗?
Python には int を実装するときに小さな整数プールがあります。効率を高めるために、Python はまずこれらの整数を内部で作成し、次に整数のこの部分を再利用して値 1 の int を作成します。実際、Python はこのプールから直接 1 を取得します。
通常 -5 ~ 257。 1,000、500 などを入手して確認してください。もうそんなことはありません。
これを見てください:
Python整数オブジェクトの実装
定数プールはパフォーマンスの最適化に使用されます。そして、これは Python に限ったことではなく、他の多くの言語でも同様の手法が使用されています。
https://github.com/python/cpy...