is implemented with id ?
Hans Mulder
hansmu at xs4all.nl
Sat Nov 3 17:49:07 EDT 2012
On 3/11/12 20:41:28, Aahz wrote:
> [got some free time, catching up to threads two months old]
>
> In article <50475822$0$6867$e4fe514c at news2.news.xs4all.nl>,
> Hans Mulder <hansmu at xs4all.nl> wrote:
>> On 5/09/12 15:19:47, Franck Ditter wrote:
>>>
>>> - I should have said that I work with Python 3. Does that matter ?
>>> - May I reformulate the queston : "a is b" and "id(a) == id(b)"
>>> both mean : "a et b share the same physical address". Is that True ?
>>
>> Yes.
>>
>> Keep in mind, though, that in some implementation (e.g. Jython), the
>> physical address may change during the life time of an object.
>>
>> It's usually phrased as "a and b are the same object". If the object
>> is mutable, then changing a will also change b. If a and b aren't
>> mutable, then it doesn't really matter whether they share a physical
>> address.
>
> That last sentence is not quite true. intern() is used to ensure that
> strings share a physical address to save memory.
That's a matter of perspective: in my book, the primary advantage of
working with interned strings is that I can use 'is' rather than '=='
to test for equality if I know my strings are interned. The space
savings are minor; the time savings may be significant.
-- HansM
More information about the Python-list
mailing list