On Sun, 6 Jan 2019 at 10:26, Guido van Rossum <[email protected]> wrote:
> On Sun, Jan 6, 2019 at 9:40 AM Paul G <[email protected]> wrote: > >> I am not familiar enough with the compiler logic, but would it be >> possible to optimize this away by detecting whether the bound name has >> already been deleted during the body of the except statement? >> > > As was said before, it's not useful to optimize code that only runs on an > exception. (Though if there was a > > On January 6, 2019 4:18:00 PM UTC, Chris Angelico <[email protected]> > wrote: >> >> On Mon, Jan 7, 2019 at 3:13 AM Paul G <[email protected]> wrote: >> >>> >>> I think Serhiy is saying that if you delete exc before the except body >>> ends, when the compiled code goes to delete it it will fail. Binding to >>> None guarantees that there is something to delete. >>> >> >> Ahh! Thank you. I interpreted that example as a "this is what it >> compiles to", rather than actual source code that might fail. Can we >> get this example, suitably annotated, into the documentation >> somewhere? >> >> > I don't see a reason to document this behavior -- it would be strange if > it *didn't* work. > > If we had an opcode to delete a variable but didn't raise if it is unset, > we could use that, but otherwise I see no action needed here. > Maybe someone can propose a code comment to explain this instead? I agree that this doesn't need to be explained in the language spec, but I don't see any harm in a comment where the opcodes are emitted to explain why it is the way it is .
_______________________________________________ Python-Dev mailing list [email protected] https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com
