egasimus wrote:
Hi, newbie here. I've read on using the 'global' keyword being
discouraged; then what is the preferred way to have something, for
example a class containing program settings, accessible from
everywhere, in a program spanning multiple files?
Define your "global" in a module (a .py file) and import that wherever
you need it:
mod.py:
gvar = 123 # A Global (like) value
main.py:
import mod
... mod.gvar ... # To access the value
... mod.gvar = 456 ... #To change the value
Using the "global" keyword has nothing to do with this. And in fact
Python does not even have global variables in the sense you may be thinking.
If you wish to provide a function in mode.py that sets the value then
this would fail
mod.py:
gvar=123
def SetGvar(v):
gvar = v
because the gvar inside the function is local to that function. This
is the proper place to use the "global" keyword.
mode.py:
gvar = 123
def SetGvar(v):
global gvar # Makes gvar refer to the (global) module level gvar
gvar = v
Gary Herron
--
http://mail.python.org/mailman/listinfo/python-list