[Edu-sig] Pass by Reference

Warren Sande warren.sande at rogers.com
Tue May 20 17:59:50 CEST 2008


Agreed.  

Python "behaves like"  call-by-value for immutable types and  "behaves like" call-by-reference for mutable types.  Newbies care about how a thing behaves, not what's going on behind the scenes.  Because understanding the behavior lets them write working programs.  This seemingly inconsistent behavior is one thing that makes teaching with Python a bit more difficult.  Beginners want the answer to the question:  "If I pass something to a function, can the function change it or not?"  And the answer is, "It depends."  That's not a great answer for a beginner.

Warren Sande


----- Original Message ----
From: John Posner <jjposner at snet.net>
To: edu-sig at python.org
Sent: Tuesday, May 20, 2008 10:50:38 AM
Subject: Re: [Edu-sig] Pass by Reference

> ... and stop trying to invent new names for a parameter passing mechanism
> that is identical in function to traditional call by value.
> 

Yeah, but ... it will be difficult to stick to a call-by-value
characterization when confronted with this example, which is straight from
"Call by Reference 101":

def AddArtist(mylist):
    mylist.append('TheOtherTerry')
 
>>> troupe
['Graham', 'John', 'Eric', 'Michael', 'Terry']

>>> AddArtist(troupe)

>>> troupe
['Graham', 'John', 'Eric', 'Michael', 'Terry', 'TheOtherTerry']


Most students (especially newbies) won't care about what happens under the
hood -- not at first. If it looks like a duck, walks like a duck, and quacks
like a duck ...

-John

_______________________________________________
Edu-sig mailing list
Edu-sig at python.org
http://mail.python.org/mailman/listinfo/edu-sig



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/edu-sig/attachments/20080520/63b61b1c/attachment.htm>


More information about the Edu-sig mailing list