Great explanation Alan. I am a newbie at Python but descriptions like this 
really help me better understand.

Thanks again.

> To: tutor@python.org
> From: alan.ga...@btinternet.com
> Date: Thu, 18 Oct 2012 08:32:41 +0100
> Subject: Re: [Tutor] Objects, object references,      object values and 
> memory addresses
> 
> On 18/10/12 04:41, boB Stepp wrote:
> >  From Programming in Python 3, 2nd edition (p. 22-23):
> >
> >>>> a = ["Retention", 3, None]
> >>>> b = ["Retention", 3, None]
> >>>> a is b
> > False
> >>>> b = a
> >>>> a is b
> > True
> >
> > My current understanding is as follows: On the first two lines, two
> > separate objects are defined, stored in two separate blocks of memory.
> 
> Two separate list objects are created. In Python it is rarely helpful to 
> think about memory usage. Python is abstracted so far from the physical 
> machine that the connection usually depends on the creator of the 
> interpreter rather than the language.
> 
> > These two objects just happen to have the same value, ["Retention", 3,
> > None], stored in two separate locations.
> 
> Yes, but note that its the fact that they are two separate lists that 
> matters. Even if the contents were the same objects they would still be 
> two lists:
> 
>  >>> x = [42]
>  >>> y = 'spam'
>  >>> z = None
>  >>> a = [x,y,z]
>  >>> b = [x,y,z]   # different list, exact same content
>  >>> a is b
> False
>  >>> a == b
> True
>  >>> a = b
>  >>> a is b
> True
>  >>> a == b
> True
>  >>>
> 
>  > a and b, object references (Variables are what I used to call these.
> 
> And most folks still do...
> 
> > I ask: Which implementations of Python do this? In trying to make any
> > code I write portable across as many platforms as possible, should I
> > avoid using the identity operator, is (and its opposite, is not),
> > except when I wish to compare to None?
> 
> The point is that you don't know. And, even if you did, the very next 
> release might change it so you cannot rely on it. That's the real 
> message - do not assume a particular implementation technique because it 
> is not guaranteed to be that way or to stay that way.
> 
> -- 
> Alan G
> Author of the Learn to Program web site
> http://www.alan-g.me.uk/
> 
> _______________________________________________
> Tutor maillist  -  Tutor@python.org
> To unsubscribe or change subscription options:
> http://mail.python.org/mailman/listinfo/tutor
                                          
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to