Hi, guys I'm not sure if python-dev is the right place to write to, but I'm really curious about this:
>From the Python Language reference: > 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. Now I asked the same question on python-list and people suggested that the true meaning of that rule is: >>> def f(): ... a = 42 ... def g(): ... nonlocal a ... del a ... SyntaxError: can not delete variable 'a' referenced in nested scope Which looks weird, because the name is referenced in the _enclosed_ scope, not the _enclosing_ scope. Is there a typo in the documentation or am I missing something? _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com