[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