Could someone please paraphrase this statement about variables and functions in 
Python?

I am going through the tutorials on docs.python.org, and I came across this 
excerpt from http://docs.python.org/3/tutorial/controlflow.html:

"The execution of a function introduces a new symbol table used for the local 
variables of the function. More precisely, all variable assignments in a 
function store the value in the local symbol table; whereas variable references 
first look in the local symbol table, then in the local symbol tables of 
enclosing functions, then in the global symbol table, and finally in the table 
of built-in names. Thus, global variables cannot be directly assigned a value 
within a function (unless named in a global statement), although they may be 
referenced.

"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). [1] When a function calls another function, a new 
local symbol table is created for that call."

Even as a professional programmer, I'm not really able to follow this.  It 
appears to be self-contradictory, amgiguous, incomplete, and possessive of 
logical missteps.  The problem with looking for this information elsewhere is 
that it's not going to be all in one spot like this half the time, and it's not 
going to be readily searchable on Google without more knowledge of what it's 
referring to.  However this looks like something that's too important to 
overlook.

I can tell it's referring to things like scope, pass-by-value, references, 
probably the call stack, etc., but it is written extremely poorly.  Translation 
please?  Thanks!
-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to