[Tutor] is gotchas?

Hugo González Monteverde hugonz-lists at h-lab.net
Tue Jan 9 07:28:08 CET 2007


>       Hmmm! Hmmm!
>       Lookee here:
>       ## console session
>      >>> a=[1,2]
>      >>> b=[1,2]
>      >>> a is b
>     False
>      >>> c='1'  ## one byte
>      >>> d='1'  ## one byte
>      >>> c is d
>     True
>      >>> c='1,2'
>      >>> d='1,2'
>      >>> c is d
>     False
> 
>     The Hmmm! is emmitted because I'm thinking that if everything is an
>     object in python, then why does `c is d` evaluate to True when
>     the assigned value is 1 byte and evaluate to False when the assigned
>     value is more that 1 byte?

One and two byte strings are currently optimized in cPython as the same 
object, referenced multiple times.

Note that this is not to be relied upon! Jython, Ironpython, Python3000 
or cPython itself may break it!

Still cannot find a reference doc for this....

Hugo



More information about the Tutor mailing list