On 12/18/2013 3:18 AM, Steven D'Aprano wrote:
We don't know what locals()['spam'] = 42 will do inside a function,
I am mystified that you would write this. Locals() will "Update and return a dictionary representing the current local symbol table." The only thing unspecified is the relation between the 'current local symbol table' and the *dict* that 'represents' it. Given that a dict is returned, the rest is unambiguous.
unlike the C case, we can reason about it: - it may bind 42 to the name "spam";
"somedict['spam'] = 42" will do exactly that.
- it may raise a runtime exception;
Absolutely not.
- it may even be a no-op;
Absolutely not. -- Terry Jan Reedy -- https://mail.python.org/mailman/listinfo/python-list