Monday, 15 June 2015

scope - python: variable availability in imported files -



scope - python: variable availability in imported files -

i've got noob python question variable scope.

i've created 2 scripts. 1 included other:

file1.py

a = 10 file2 import *

file2.py

print

when seek execute file1.py, error: nameerror: name 'a' not defined

so, question. possible create script's variables available in included scripts?

update: i'm trying this: main.py

from config include * utils include *

in config.py i'd have

filename = "/tmp/file.txt"

in utils.py i'd have

def write_file():

the problem have whole bunch of little functions need filename. right don't have function in utils.py. have them in main.py. on time main.py got bigger , bigger i'm thinking if there easy way move utility functions away main script.

the print a in sec file executes in scope, not of first one. python modules aren't c header files, in code isn't 'embedded' file - module loaded, , code run, hence allowing access names module.

a demonstration of if __name__ == '__main__': block commonly found in modules. if code embedded script, code within block run every time, __name__ '__main__'. because code run within scope of imported module, __name__ different value, code run if in top-level script.

to able print a need from file1 import a in sec file.

addressing update, shouldn't problem. from config import filename in utils script allow utilize variable, long imported before filename referenced.

python scope

No comments:

Post a Comment