On Tue, 17 Oct 2017 01:12 pm, Ned Batchelder wrote: > On 10/16/17 9:06 PM, bartc wrote: >> On 17/10/2017 01:53, Steve D'Aprano wrote: [...] >>> `del` is kind of like an "anti-assignment" in that the argument to >>> `del` must >>> be exactly the same sort of expression that can appear on the left >>> hand side >>> of assignment: >>> >>> >>> 123 = 1+1 # illegal >>> del 123 # also illegal >> >> Yet in Stefan Ram's example with del applied to a local 'x', it raised >> an error on: >> >> del x # x not yet assigned to >> >> but an assignment to x would have been fine. > > Steve meant that syntactically it had to be valid on the left-hand > side. "x" is a syntactically valid LHS, "1+1" is not.
Right. I didn't say that "del x is a compiler declaration that has no runtime effect", because that would have been silly. Of course del x tries to delete the local variable x, and since x doesn't exist yet, it fails with UnboundLocalError. -- Steve “Cheer up,” they said, “things could be worse.” So I cheered up, and sure enough, things got worse. -- https://mail.python.org/mailman/listinfo/python-list