On 24 Aug 2005 01:50:25 -0700,
v.*****@gmail.com wrote:
I need to execfile() from a function in order to set value for a global
variable from inside the executed file. I know there are "globals" and
"locals" optional arguments for execfile, but I just can't figure out
how to use them correctly. Here is an example:
Change.py
=========
x = 555
Main.py
=======
def changevar():
execfile("change.py")
execfile("change.py", globals()) # the builtin globals function returns
# the current module's global namespace
# as a writable dict
x = 111 # global var
changevar()
print x # returns 111 instead of 555
open('change.py','w').write("""\
... x = 555
... """) print '%s\n%s%s' %('-'*30, open('change.py').read(), '-'*30)
------------------------------
x = 555
------------------------------ dir()
['__builtins__', '__doc__', '__name__'] x = 111
x
111 def changevar():
... execfile('change.py', globals())
... x
111 changevar()
x
555
Regards,
Bengt Richter