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

Reply via email to