trying to modify locals() dictionary

TP Tribulations at Paralleles.invalid
Mon Jan 12 19:51:23 CET 2009


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)



More information about the Python-list mailing list