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.
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to