Scope (?) question

Peter peter.milliken at gmail.com
Tue Jun 15 18:22:17 EDT 2010


I am puzzled by what appears to be a scope issue - obviously I have
something wrong :-)

Why does this work:

if __name__ == 'main':
  execfile('test-data.py')
  print data

and yet this doesn't (I get "NameError: global name 'data' not
defined"):

def X():
  execfile('test-data.py')
  print data

where test-data.py is:

data = [1,2,3,4]

I checked help on execfile and could only find the following
(mystifying) sentence:

"execfile() cannot be used reliably to modify a function’s locals."

Thanks
Peter



More information about the Python-list mailing list