References, and avoiding use of ???variable???

Ben Finney ben+python at
Sat Mar 1 00:33:27 CET 2014

Neil Cerutti <neilc at> writes:

> On 2014-02-28, Ben Finney <ben+python at> wrote:
> > Right. I would like, ideally, for the Python documentation to
> > avoid mentioning that term entirely; and I would hope for that
> > to promote a better understanding of Python's data model.
> I like the characteristic of Python that assignment and argument
> passing work the same way.

Yes. They both work by binding a name to a value.

> The tutorial makes things sound more high-falutin' than that
> [Tutorial 4.6 Defining Functions]:
>   The actual parameters (arguments) to a function call are
>   introduced in the local symbol table of the called function
>   when it is called; thus, arguments are passed using call by
>   value (where the value is always an object reference, not the
>   value of the object). [...]
> How about:
>   The actual parameters (arguments) to a function call are passed
>   via assignment to the variables in the local symbol table of
>   the called function. 
> Am I oversimplifying?

As you can see by what you quoted from me above, I think the use of
“variable” here is unnecessarily confusing.

That whole chapter of the tutorial talks about “variable” and “variable
assignment”, when IMO it should avoid those terms and use the clearer
terminology of “reference”, “name”, and “binding a name to a value”.

(Why don't I submit these documentation changes myself? That's a matter
for a separate thread.)

 \         “All my life I've had one dream: to achieve my many goals.” |
  `\                                            —Homer, _The Simpsons_ |
_o__)                                                                  |
Ben Finney

More information about the Python-list mailing list