Accessing variables in __main__ from modules....
nanotech at europa.com
nanotech at europa.com
Thu Mar 29 13:38:51 EST 2001
All:
When writing programs, I like to add print statements that are only
displayed when the user provides a command line switch such as '--
debug'.
Ex: %myprog spam.txt ham
Found the word 'ham' in 'spam.txt' 45 times
%myprog --debug spam.txt ham
-I-: Reading 'spam.txt'....has 213 lines....
Found the word 'ham' in 'spam.txt' 45 times
Now, say most of the work is done in a module 'spam.py'. If I wrote
code in this module like:
lines=open(filename).readlines()
if (DEBUG):
print "-I-: Reading '%s'....has %s lines...."%(filename,len
(lines))
DEBUG would be searched for at the module scope. But I want it to
look for DEBUG back in __main__, like:
if (sys.modules["__main__"].DEBUG):
print "-I-: Reading '%s'....has %s lines...."%len(filename,lines)
Is this the "best" way to access variable in the "__main__" scope?
How else might I solve this (in the python way)??
Quentin Crain
Note: I might load many modules all wanting to know if DEBUG is
turned on. I do not want to pass DEBUG to functions or classes and I
do not want to set a module variable DEBUG to the same value
(module1.DEBUG=DEBUG, module2.DEBUG=DEBUG, etc. in __main__). Unless
these are "better" solutions! :)
More information about the Python-list
mailing list