[Python-Dev] locals() different behaviour when tracing? (original) (raw)

Anders Waldenborg anders at 0x63.nu
Thu Oct 8 15:43:44 CEST 2009


Is it intentional that locals() returns a copy/snapshot of the local variables sometimes, and sometimes a reference? Like when enabling tracing, such as in the code pasted below. The documentation ("Update and return a dictionary containing the current scope's local variables.") is pretty unclear.

import sys

def X(): l = locals() i = "foo" print "Is 'i' in stored locals()? ", ('i' in l)

print "Running normally" X()

print "Enabling tracing" def t(*a): return t sys.settrace(t) X()



More information about the Python-Dev mailing list