On Wed, Nov 01, 2006 at 12:20:36PM -0800, SpreadTooThin wrote: > > Bruno Desthuilliers wrote: > > Nick Vatamaniuc a �crit : > > (snip) > > > In Python all the primitives are copied and all other entities are > > > references. > > > > Plain wrong. There's no "primitives" (ie : primitive data types) in > > Python, only objects. And they all get passed the same way. > > so.. > def fn(x): > x = x + 1 > print x > > a = 2 > fn(a) > fn(2) > > Wouldn't you say that this is being passed by value rather than by > refrence? >
What you're confused with is assignment. Check this example; >>> def f(x): ... print id(x) ... x = x + 1 ... print id(x) ... >>> f(1234) 1617596 1617608 >>> a = 5678 >>> id(a) 1617596 >>> f(a) 1617596 1617620 >>> You can assume id() as a memory address. Is it call-by-value? -- Inyeol Lee
-- http://mail.python.org/mailman/listinfo/python-list