A question about reference in Python.

Joe Strout joe at strout.net
Mon Dec 8 23:30:00 EST 2008


On Dec 8, 2008, at 7:43 PM, Steven D'Aprano wrote:

> On Mon, 08 Dec 2008 08:18:27 -0700, Joe Strout wrote:
>
>> On Dec 7, 2008, at 10:26 PM, Group wrote:
>>
>>> Now, I want to write a Red-Black Tree, and a List structure. In C/C 
>>> + +,
>>> I can
>>> use pointers to refer to  children  notes (or next notes). But, in
>>> Python, how
>>> can I do it? Except the sequence, I know not any way.
>>
>> Any variable in Python is a reference
>
> Except that they don't behave like references in languages that have
> explicit reference parameters.

I didn't say anything about reference parameters (by which I believe  
you mean parameters passed by reference).  I say a variable in Python  
IS a reference.  And it is *exactly* like a reference parameter in any  
other modern OOP language, as I've clearly shown (http://www.strout.net/info/coding/valref/ 
).

That page also explains that Python's references are always passed by  
value; Python doesn't have a pass-by-reference mechanism, unlike (say)  
RB, C++, or .NET.

This stuff really isn't that hard.

> Did you not see the thread asking how to create reference parameters  
> in
> Python? Subject "var or inout parm?". I noticed you were conspicuous  
> by
> your absence in that little discussion.

No, sorry, I missed that one.  The volume of this group (plus the  
several other Python lists I subscribe to) requires me to skim a lot,  
and often choose not to read a thread at all.

In this case, the subject caught my attention, and I saw that I could  
help clear up some confusion.  Now that I've done that, I'll probably  
cease to read this thread any further, since as you say, we've been  
over this to death.  Go ahead and try to confuse him if you insist.   
Hopefully he'll ignore that and see that Python is simple, and  
identical in its semantics to the languages he already knows.

Best,
- Joe




More information about the Python-list mailing list