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

Reply via email to