J
jsrig88
I am going through the tutorials on docs.python.org, and I came across thisexcerpt 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 afunction store the value in the local symbol table; whereas variable references first look in the local symbol table, then in the local symbol tablesof 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), althoughthey may be referenced.
"The actual parameters (arguments) to a function call are introduced in thelocal
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 thevalue
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 seems self-contradictory, amgiguous, and incomplete. 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!
"The execution of a function introduces a new symbol table used for the local variables of the function. More precisely, all variable assignments in afunction store the value in the local symbol table; whereas variable references first look in the local symbol table, then in the local symbol tablesof 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), althoughthey may be referenced.
"The actual parameters (arguments) to a function call are introduced in thelocal
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 thevalue
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 seems self-contradictory, amgiguous, and incomplete. 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!