dzhelil dzhelil - 4 months ago 14
Python Question

Python: load variables in a dict into namespace

I want to use a bunch of local variables defined in a function, outside of the function. So I am passing

in the return value.

How can I load all the variables defined in that dictionary into the namespace outside the function, so that instead of accessing the value using
, I could simply use


Consider the Bunch alternative:

class Bunch(object):
  def __init__(self, adict):

so if you have a dictionary d and want to access (read) its values with the syntax instead of the clumsier d['foo'], just do

x = Bunch(d)

this works both inside and outside functions -- and it's enormously cleaner and safer than injecting d into globals()! Remember the last line from the Zen of Python...:

>>> import this
The Zen of Python, by Tim Peters
Namespaces are one honking great idea -- let's do more of those!