Why does creating/modifying a member of locals() not work within a function?
Python 2.5 (release25-maint, Jul 20 2008, 20:47:25) [GCC 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)] on linux2 Type 'help', 'copyright', 'credits' or 'license' for more information. >>> # Here's an example of what I expect to be possible in a function: >>> a = 1 >>> locals()['a'] = 2 >>> print a 2 >>> # ...and here's what actually happens: >>> def foo(): ... b = 3 ... locals()['b'] = 4 ... print b ... >>> foo() 3
Why would it? It’s designed to return a representation, and was never intended for editing the locals. It’s not ever guaranteed to work as a tool for such, as the documentation warns.