Hi everybody, I try to modify locals() as an exercise. According to the context (function or __main__), it works differently (see below). Why? Thanks
Julien ######################################## def try_to_modify_locals( locals_ ): locals_[ "a" ] = 2 print "locals_[ 'a' ]=", locals_[ "a" ] return locals_ def test_modify_locals(): a = 3 l = try_to_modify_locals( locals() ) print l is locals() print a # Below, a remains equal to 3 print "test from test_modify_locals()" test_modify_locals() # But here, it works: a is modified print "test from __main__" a = 3 l = try_to_modify_locals( locals() ) print l is locals() print a ######################################## -- python -c "print ''.join([chr(154 - ord(c)) for c in '*9(9&(18%.\ 9&1+,\'Z4(55l4('])" "When a distinguished but elderly scientist states that something is possible, he is almost certainly right. When he states that something is impossible, he is very probably wrong." (first law of AC Clarke) -- http://mail.python.org/mailman/listinfo/python-list