Terry J. Reedy <tjre...@udel.edu> added the comment:

I have changed my mind on this issue. Since

e = 1
del e
def g(): print(e)
g()

compiles and raises a run-time name error, so should the same code embedded 
within a function. In either case, the premature deletion is a logic error, not 
a syntax error.

However, changing the language definition, even to fix what is considered a 
design bug, is a feature request. For both 2.7 and 3.1, section 6.5. "The del 
statement", says "It is illegal to delete a name from the local namespace if it 
occurs as a free variable in a nested block."

So this seems too late for 2.7. On the other hand, Guido has allowed it for 3.2 
in spite of the moratorium, but I think it should go in the initial release.

----------
type: behavior -> feature request
versions:  -Python 2.7

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue4617>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to