[EMAIL PROTECTED] wrote:

I have a variable that I want to make global across all modules, i.e. I
want it added to the builtin namespace.  Is there a way to do this?

Of course: you can do *anything* in Python. I'm not sure this is to be recommended, but since you ask ... if you have

# mymod.py
print myname

then in some other module (and here specifically in the interactive interpreter) you can bind a value to "myname" in __builtins__ and it will be seen by mymod.py when it's imported:

 >>> __builtins__.myname = "MyValue"
 >>> myname
'MyValue'
 >>> import mymod
MyValue
 >>>

Having said all that, you have to be careful, since it's necessary to explicity assign to __builtins__.myname to change the value - if you just assign to myname then you create a new myname in the module's global namespace that will make the name in __builtins__ inaccessible.

So, what with that plus the way the names automagically appear it's probably something to relegate to the "definitely not best practice" category.

regards
 Steve
--
Steve Holden               http://www.holdenweb.com/
Python Web Programming  http://pydish.holdenweb.com/
Holden Web LLC      +1 703 861 4237  +1 800 494 3119
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to