On 1/4/07, Neil Toronto <[EMAIL PROTECTED]> wrote:
Guido van Rossum wrote: > On 1/4/07, Phillip J. Eby <[EMAIL PROTECTED]> wrote: > >> At 01:41 AM 1/4/2007 -0600, Ka-Ping Yee wrote: >> >>> How about this? >>> >>> except ExcType, e: >>> try: >>> # body >>> finally: >>> e = None >>> >> It's a little bit more difficult to explain in the reference manual. I was >> figuring we'd say that the exception variable is bound only in the body of >> the except clause; saying it becomes None when you exit sounds weirder to >> me. How about: >> >> except ExcType, e: >> try: >> # body >> finally: >> e = None >> del e >> >> Then we get the best of all three worlds: a clean explanation, a clean >> implementation, and a pure source-to-source transformation. >> > > Great! We need (a) an update to PEP 3100 and (b) a patch to implement > this. (Once we have this we can talk about the rest of PEP 344; > perhaps that PEP should also target Py3k only?) Does it bother anybody that the variable e now has only block scope rather than function scope like (almost) every other local? Do the benefits outweigh the inconsistency?
Nope, doesn't bother me. One could argue that there's precedent with generator comprehensions
(also list comprehensions in Py3k), but to me this *looks* more like a for loop. As a first-time user I would expect it to behave the same way.
Well, how often does one reuse the exception variable past the 'execpt' clause? I admit I have used the leaked loop variant from a 'for' loop on occasion, but that is not a big deal since I could get around it very easily. I think having the docs explicitly state the variable is local to the 'except' clause only is not that hard of a thing to grap. We can also say that if people really need the exception to stick around they can assign it to another variable. -Brett
_______________________________________________ Python-3000 mailing list Python-3000@python.org http://mail.python.org/mailman/listinfo/python-3000 Unsubscribe: http://mail.python.org/mailman/options/python-3000/archive%40mail-archive.com