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