modifying locals
Steven D'Aprano
steve at REMOVE-THIS-cybersource.com.au
Fri Oct 31 03:53:10 EDT 2008
More information about the Python-list mailing list
Fri Oct 31 03:53:10 EDT 2008
- Previous message (by thread): modifying locals
- Next message (by thread): modifying locals
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Fri, 31 Oct 2008 07:10:05 +0100, Tino Wildenhain wrote: > Also, locals() already returns a dict, no need for the exec trickery. > You can just modify it: > > >>> locals()["foo"]="bar" > >>> foo > 'bar' > That is incorrect. People often try modifying locals() in the global scope, and then get bitten when it doesn't work in a function or class. >>> def foo(): ... x = 1 ... locals()['y'] = 2 ... y ... >>> foo() Traceback (most recent call last): File "<stdin>", line 1, in <module> File "<stdin>", line 4, in foo NameError: global name 'y' is not defined You cannot modify locals() and have it work. The fact that it happens to work when locals() == globals() is probably an accident. -- Steven
- Previous message (by thread): modifying locals
- Next message (by thread): modifying locals
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list