sending a variable to an imported module

Bastien Semene bsemene at cyanide-studio.com
Thu Dec 8 06:28:21 EST 2011


Hi list,

I'm trying to pass a variable to an imported module without singletons.
I've seen in the doc, and tested that I can't use global to do it :

=== module.py ===
def testf():
  print test


=== main.py ===
global test
test = 1

imported_module = __import__(module, globals(), locals(), [], -1)

importmodule.testf()

=== output ===
NameError: global name 'test' is not defined



While I was reading many (many) threads about singleton I read people 
claiming that singletons can always be avoided (I can't remeber the most 
relevant thread on stackoverflow).
I don't want to start a new debate about singletons, I think Internet 
has enough debates yet.

But in my case I'd like to access this variable anywhere and at anytime 
without having to pass it as a parameter everywhere (this variable is a 
configuration manager object).
How can I achieve that without singletons ?
I'm beginner in Python, that's why I'm maybe missing something obvious.

Thanks,
Bastien Semene



More information about the Python-list mailing list