Skip to content Skip to sidebar Skip to footer

How To Share Globals Between Imported Modules?

I have two modules, a.py and b.py. I want the globals from a.py to be available in b.py like this: a.py: #!/usr/bin/env python var = 'this is global' import b b.foo() b.py: #!

Solution 1:

Create a settings module that has shared globals if that's what you want. That way you're only importing and referencing each global one time, and you're keeping them isolated within the namespace of the settings module. It's a good thing.

#settings.py
var = 'this is global'# a.pyimport settings
import b
b.foo()

# b.pyimport settings
deffoo():
    print settings.var

Solution 2:

By making b.py require globals from a.py, you have created classes that depend on each other, which is bad design.

If you have static variables that need to be shared, consider creating c.py which both a.py and b.py can import and reference.

If you have dynamic variables that need to be shared, consider creating a settings class that can be instantiated and passed between the modules.

Solution 3:

Define your globals in c.py and import them into a.py and b.py

Post a Comment for "How To Share Globals Between Imported Modules?"