On Thu, 21 Mar 2013 01:52:17 -0700, bartolome.sintes wrote: > In Python 3, "free variable" and "nonlocal variable" are synonym terms? > Or is there a difference, like "a free variable is a variable that is > not a local variable, then nonlocal variables and global variables are > both free variables"?
"Free variable" is a formal term from computer science. As far as I know, Python uses it in exactly the same way. A free variable is a variable in an expression or function that is not local (which includes function parameters) to that expression. So both global and non-local variables are free variables. def spam(x): def inner(): y = x**2 - 1 return x + y + z return inner() In inner(), both x and z are free variables, but y is not, since it is local to the inner() function. -- Steven -- http://mail.python.org/mailman/listinfo/python-list