Python "is" behavior

Gary Herron gherron at islandtraining.com
Fri Jun 20 15:14:15 EDT 2008


michalis.avraam at gmail.com wrote:
> On Jun 20, 9:38 am, Jean-Paul Calderone <exar... at divmod.com> wrote:
>   
>> On Fri, 20 Jun 2008 09:31:57 -0700 (PDT), michalis.avr... at gmail.com wrote:
>>     
>>> I am not certain why this is the case, but...
>>>       
>>>>>> a = 256
>>>>>> b = 256
>>>>>> a is b
>>>>>>             
>>> True
>>>       
>>>>>> a = 257
>>>>>> b = 257
>>>>>> a is b
>>>>>>             
>>> False
>>>       
>>> Can anyone explain this further? Why does it happen? 8-bit integer
>>> differences?
>>>       
>> http://mail.python.org/pipermail/python-list/2001-November/113994.html
>>
>> Jean-Paul
>>     
>
> Thank you for this Jean-Paul. I did know about the identity of
> objects, but my curiosity is based on the 256 number. Are the 2^8
> integers cached due to the internal loops, or is there any other
> specific reason? Is this something that can be controlled?
>   

Python provides no way to change that number, but of course you can 
always fiddle with the source code and recompile.   The actual value is 
a trade off (like any caching scheme) of cache-space versus efficiency 
gains.   The value has changed at least once in recent versions of Python.

Gary Herron

> --
> http://mail.python.org/mailman/listinfo/python-list
>   




More information about the Python-list mailing list