[Tutor] Function Return Values (or References)

Peter Otten __peter__ at web.de
Mon Jun 24 11:59:38 CEST 2013


John Steedman wrote:

> Hi Tutors,
> 
> I'm confused by the following possible contradiction. Would someone please
> explain or point me to the right docs.
> 
> FACT 1
> 
> "Variables in python hold references to objects."
> http://en.wikipedia.org/wiki/Python_syntax_and_semantics
> 
> FACT 2
> 
>>>>def Increment ( x ) :
>>>>    // return x + 1
>>>>    x = x + 1
>>>>    return x
>>>>
>>>>y = 1
>>>>z = Increment ( y )
>>>>y
> 1
>>>>z
> 2
> 
> By FACT 1  x should be a reference parameter...?
> By Fact 2 x would seem to be a copy...?
> 
> What in the world of dynamic typing is going on?

There's a big confusion in terminology. Does

http://en.wikipedia.org/wiki/Evaluation_strategy#Call_by_sharing

help? Here's a more detailed explanation:

<http://learntofish.wordpress.com/2012/01/09/call-by-object-reference-call-by-sharing/>

 



More information about the Tutor mailing list