__getattr__ for globals?
Alex Martelli
aleax at aleax.it
Fri Apr 18 17:40:52 EDT 2003
Kevin Smith wrote:
> Is there a way to get the same type of effect of the __getattr__ method
> on class instances with global variables? I want to be able to look up
> the value of global variables from an external source if they don't
> exist in the current set of globals.
Module objects don't offer this functionality -- when you access a
global X in module Y (whether by syntax Y.X from elsewhere, or by
just X from code inside Y), you get a direct access to Y.__dict__['X'],
period. And you cannot rebind Y.__dict__ , either.
So why don't you use a class instance to hold your "globals"
instead?
class Globals:
"whatever you wish"
glob = Globals
and use glob.X, glob.Y and so on rather than the corresponding
barenames. This way you get to do whatever you wish AND your
code arguably gets more readable too...
Alex
More information about the Python-list
mailing list