Unbinding a name referenced by an enclosing scope
Grigory Javadyan
grigory.javadyan at gmail.com
Sun Feb 20 04:07:07 EST 2011
>From the Python Language Reference (v 3.1):
> It is illegal to unbind a name referenced by an enclosing scope; the compiler will report a SyntaxError.
But when I run the following code:
a = 3
def x():
global a
del(a)
print(a)
x()
it works fine; and when I change the order of calls:
x()
print(a)
I get a NameError, not a SyntaxError. Apparently, I'm not
understanding the rule correctly. Can anyone explain it? Thanks.
More information about the Python-list
mailing list