Global var access in imported modules?
RgeeK
Ross at no.thanks.spammers
Wed Aug 27 16:21:03 EDT 2008
I have a main module doStuff.py and another module utility.py. At the
start of doStuff.py I call
import utility.py
Then I also proceed to initiallize some global variables
sName = ""
Then I create a class, some methods etc. In one of the methods I assign
a value to my variable sName. Then I call a function from within
my utility.py file:
utility.makeOne(stuff)
Within my utility.py file, I define the makeOne function. But I want to
use that same global variable "sName" In utility.py I have tried to
indicate that I'm using the global "sName" through the statement:
global sName
But when I go to use the variable it still gives me an error:
NameError: global name 'sName' is not defined
I thought perhaps I need to indicate 'globality' in my main module, so
before I initiallized sName in doStuff.py I added:
global sName
But it doesn't help me. I had this issue before and resolved it by
declaring the variable global in the sub-module utility.py, but then I
needed to reference it in my main module with a prefix:
utility.sName = ""
It's more verbose,and defining globals in a submodule seems backward.
But also, what if I need to access "sName" in another imported module,
say "otherstuff.py"? I would do my "import otherstuff" call in my main
module, but would I have to put an "import utility" into the
otherstuff.py file?
Is there some way I can define globals in my main module, and have them
accessible in all my imported submodule?
As you can see I'm a little unsure about the global handling in a
multi-module environment. Any suggestions appreciated. I've read
http://docs.python.org/ref/naming.html but it hasn't enlightened me on
this one.
More information about the Python-list
mailing list