On 14/11/2019 13:06, R.Wieser wrote:
Hello all,
I've just tried to use a "nonlocal MyVar" statement in a procedure
defenition, but it throws an error saying "Syntax error: no binding for
nonlocal 'MyVar' found.
According to platform.python_version() I'm running version 3.8.3
Why am I getting that error ? (already googeled ofcourse)
Testcode:
- - - - - - - - - - - -
Def Proc1()
nonlocal MyVar
MyVar = 5
MyVar = 7
Proc1()
print(MyVar)
- - - - - - - - - - - -
I've also tried moving "MyVar = 7" to the first line, but that doesn't
change anything. Using "global MyVar" works..
The Language Reference says
(https://docs.python.org/3/reference/simple_stmts.html#the-nonlocal-statement):
"The nonlocal statement causes the listed identifiers to refer to
previously bound variables in the nearest enclosing scope *excluding
globals.*" (my emphasis.)
MyVar is a global here, so nonlocal explicitly doesn't pick it up.
--
Rhodri James *-* Kynesim Ltd
--
https://mail.python.org/mailman/listinfo/python-list