On Thu, 2005-03-03 at 15:11, Steve Holden wrote: > Earl Eiland wrote: > > I'm writing my first program where I call custom modules. The 'global' > > command doesn't seem to apply, so how do I change a variable internally > > in a module without passing it down n layers, and then back out again? > > > You are correct in assuming that global isn't what you want - it really > means "global to the module namespace in which it appears". > > However, if two separate pieces of code can both reference the same > module then one can set an attribute in the module and the other can > reference it. Don't forget that when you import a module its name > becomes global within the importing module. Since a module is just a > glorified namespace, anything that can reference the module can read > and/or set that module's attributes. > > a.py: > > import something > something.x = "A value" > > b.py: > > import something > print something.x > > will print "A value" as long as a is imported before b. Right. That part I figured out. How does one function in an imported module access a variable in the same module?
module.py def A(): test = 1 for x in range(10): B() def B(): test = test + 1 main.py import module module.A() This will fail, unless test is passed and returned. -- http://mail.python.org/mailman/listinfo/python-list