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!
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!
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.
Scopes beyond the local must be written to via a reference to the scope, or after a global
or nonlocal
(3.x+) directive.
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.