On 24 Aug 2005 01:50:25 -0700, [EMAIL PROTECTED] 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 -- http://mail.python.org/mailman/listinfo/python-list