When is it a pointer (aka reference) - when is it a copy?
Steve Holden
steve at holdenweb.com
Wed Sep 13 14:13:34 EDT 2006
John Henry wrote:
> Hi list,
>
> Just to make sure I understand this.
>
> Since there is no "pointer" type in Python, I like to know how I do
> that.
>
> For instance, if I do:
>
> ...some_huge_list is a huge list...
> some_huge_list[0]=1
> aref = some_huge_list
> aref[0]=0
> print some_huge_list[0]
>
> we know that the answere will be 0. In this case, aref is really a
> reference.
>
> But what if the right hand side is a simple variable (say an int)? Can
> I "reference" it somehow? Should I assume that:
>
> aref = _any_type_other_than_simple_one
>
> be a reference, and not a copy?
>
Yes. Attributes are always object references. The assignment is actually
the binding of a specific object to a name in some namespace, (r to an
element of a sequence or other container object.
This applies *whatever* the type of the RHS experession: the expression
is evaluated to yield an object, and a reference to the object is stored
in the name or container element.
regards
Steve
--
Steve Holden +44 150 684 7255 +1 800 494 3119
Holden Web LLC/Ltd http://www.holdenweb.com
Skype: holdenweb http://holdenweb.blogspot.com
Recent Ramblings http://del.icio.us/steve.holden
More information about the Python-list
mailing list