On Tue, 17 Oct 2017 03:16 am, Oren Ben-Kiki wrote: > That doesn't explain why `del` isn't a method though.
`del` cannot be a method or a function, because the argument to `del` is the name of the variable, not the contents of the variable. If we write: x = 123 del x then `del` needs to delete the *name* "x", not the value of x, namely 123. If del were a function or method, it would only see the value, 123, and have no idea what the name is. `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 -- 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