On Tue, Jun 19, 2012 at 12:52 PM, <shearich...@gmail.com> wrote: > ...Python pre creates some integer constants to avoid a proliferation of > objects with the same value. > > I was interested in this and so I decided to try it out. > So that matched what I'd heard and then I did this to test the limits of it : > > And that was reasonable too as the podcast mentioned it was only done for a > small set of integers around zero.
The exact set varies according to Python version and, as others have mentioned, shouldn't be relied upon. import sys print(sys.version) wascached=False for i in range(-100,300): j=i+1 j-=1 if (i is j)!=wascached: wascached=i is j if wascached: firstcache=i else: print("%d to %d are cached"%(firstcache,i-1)) break 2.4.5 (#1, Jul 22 2011, 02:01:04) [GCC 4.1.1] -5 to 99 are cached 2.6.5 (r265:79096, Mar 19 2010, 21:48:26) [MSC v.1500 32 bit (Intel)] -5 to 256 are cached 3.2 (r32:88445, Feb 20 2011, 21:29:02) [MSC v.1500 32 bit (Intel)] -5 to 256 are cached It's definitely something that's fun to play with, though not something to take ANY notice of in real code :) ChrisA -- http://mail.python.org/mailman/listinfo/python-list