Reputation: 233
Suppose I have coded a particular Python package. What is the proper way to structure global variables? Should I define all global variables in one file and simply import them everywhere else? Is there a proper way to define global variables for a python package?
Upvotes: 0
Views: 72
Reputation: 1012
How do I share global variables across modules? The canonical way to share information across modules within a single program is to create a special module (often called config or cfg). Just import the config module in all modules of your application; the module then becomes available as a global name. Because there is only one instance of each module, any changes made to the module object get reflected everywhere.
For example:
config.py:
x = 0 # Default value of the 'x' configuration setting
mod.py:
import config
config.x = 1
main.py:
import config
import mod
print(config.x)
Note that using a module is also the basis for implementing the Singleton design pattern, for the same reason.
Upvotes: 2