Beginner question - How to effectively pass a large list

Terry Reedy tjreedy at udel.edu
Tue Dec 16 09:43:16 EST 2003


"J.R." <j.r.gao at motorola.com> wrote in message
news:brmf9g$t59$1 at newshost.mot.com...
> I got following conclusion after reading your
reply and other documents:
>
> Actually, the python is passing the identity
(i.e. memory address) of each
> parameter, and it will bind to a local name
within the function.

Some months ago, there was a long thread on
whether Python function calling is 'call by name',
'call by value', or something else.  Without
reiterating long discussion, I think from a user's
viewpoint, it is best considered 'call by
name-binding', with the value-carrying object
'passing' being by cross-namespace binding.  One
can think of the return process as being similar
in that the return object is substituted for the
function name as if it had been bound to that
name.

The usage I believe promoted by Knuth and
supported by some here defines 'parameter' as the
within-function local name and 'argument' as the
outside value/object bound to that name at a
particular function call.  Yes, CPython does that
with ids that are memory addresses, but that is
implementation rather than part of the language
definition itself.  Who know what we do when we
act as Python interpreters!

Terry J. Reedy








More information about the Python-list mailing list