Explanation of list reference
Steven D'Aprano
steve+comp.lang.python at pearwood.info
Sat Feb 15 05:53:48 EST 2014
On Sat, 15 Feb 2014 10:44:39 +0100, Christian Gollwitzer wrote:
> Am 15.02.14 01:57, schrieb Chris Angelico:
>> Can you give an example of an ambiguous case? Fundamentally, the 'is'
>> operator tells you whether its two operands are exactly the same
>> object, nothing more and nothing less, so I assume your "ambiguous
>> cases" are ones where it's possible for two things to be either the
>> same object or two indistinguishable ones.
>
> What about the thing I posted down in this thread?
>
> >>> import numpy as np
> >>> a=np.array([1, 2, 3, 4])
> >>> b=a[:]
> >>> id(a)
> 140267900969344
> >>> id(b)
> 140267901045920
>
> So, a and b are different things, right?
Correct. They are different objects. But they may share underlying state.
> >>> b[1]=37
> >>> b
> array([ 1, 37, 3, 4])
> >>> a
> array([ 1, 37, 3, 4])
And indeed numpy arrays do share state. Why? No idea. Somebody thought
that it was a good idea. (Not me though...)
> Still they are connected. I can imagin that id() is just a debugging
> tool for extensions. What useful applications does it have outside of
> this?
Very few.
--
Steven
More information about the Python-list
mailing list