views:

154

answers:

4

hello,

I investigated that scope of global variables in python is limited to the module. But I need the scope to be global among different modules. Is there such a thing? I played around __builtin__ but no luck.

thanks in advance!

+2  A: 

You can access global variables from other modules by importing them explicitly.

In module foo:

  joe = 5

In module bar:

  from foo import joe
  print joe

Note that this isn't recommended, though. It's much better to hide access to a module's variables by using functions.

Eli Bendersky
It's even better not to store mutable state in global variables at all, but rather to use classes.
Mike Graham
A: 

Scopes beyond the local must be written to via a reference to the scope, or after a global or nonlocal (3.x+) directive.

Ignacio Vazquez-Abrams
A: 

There is another discussion on stackoverflow I just discovered.

celalo
A: 

Python does not support globals shared between several modules: this is a feature. Code that implicitly modifies variables used far away is confusing and unmaintainable. The real solution is to encapsulate all state within a class and pass its instance to anything that has to modify it. This can make code clearer, more maintainable, more testable, more modular, and more expendable.

Mike Graham