how to have global variables among different modul

2019-07-16 13:26发布

问题:

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!

回答1:

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.



回答2:

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.



回答3:

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