On Thursday, December 16, 2010 7:55:20 AM UTC-4, jeanmichel wrote: > Fellows, > > I'd like to illutrate the fact that comparing strings using identity is, > most of the time, a bad idea. However I'm searching a short example of > code that yields 2 differents object for the same string content. > > id('foo') > 3082385472L > id('foo') > 3082385472L > > Anyone has that kind of code ? > > JM
How about this: Python 2.6 (trunk:66714:66715M, Oct 1 2008, 18:36:04) [GCC 4.0.1 (Apple Computer, Inc. build 5370)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> a = 'spam' >>> b = 'spa' >>> c = a[:-1] >>> c 'spa' >>> id(c) 548256 >>> id(b) 548224 Or, even more simply, this: Jython 2.5.0 (Release_2_5_0:6476, Jun 16 2009, 13:33:26) [Java HotSpot(TM) Client VM (Apple Inc.)] on java1.5.0_26 Type "help", "copyright", "credits" or "license" for more information. >>> a = 'foo' >>> b = 'foo' >>> id(a) 1 >>> id(b) 2 Reusing immutable objects, for the sake of efficiency, is an implementation details which should not be relied upon (as you know since you ask for examples). André -- http://mail.python.org/mailman/listinfo/python-list